home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
ab20
/
ab20_archive
/
utilities
/
shells
/
csh519g.lha
/
csh.doc
< prev
next >
Wrap
Text File
|
1992-02-26
|
108KB
|
2,950 lines
ANLEITUNG FÜR CSHELL VERSION 5.19 1991
=======================================
Inhalt
------
O Installation
I Beschreibung
II Übersicht der Haupteigenschaften
III Einschränkungen
IV Pipes
V Präprozessor
VI Kommandozeilen-Editierung
VII Funktionstasten
VIII Shell Kommandos
IX Spezielle Variablen
X Funktionen
XI Diverses
XII Beispiel-Stapeldateien
XIII Vorgabewerte
XIV Objektorientierte Eigenschaften
XV Tastaturbelegungen
O Installation
--------------
Die CSH kann ganz einfach von der CLI-Kommandozeile aufgerufen werden, weil
die CSH aus der Sicht von AmigaDOS keine richtige Shell wie l:Shell-Seg ist,
sondern ein ganz normales Programm. Jedoch ist CShell 'pure', falls also der
LHarc vergessen hat, das 'p'-Bit zu setzen, sollte es bitte gleich jetzt
gesetzt werden ("protect Csh +p").
Endgültige Installation: Die Csh soll die AmigaShell komplett ersetzen,
dazu sollte Csh gleich von Anfang an resident sein, dafür bitte wie folgt
verfahren:
Kickstart 1.3
1. CSH irgendwohin auf die Harddisk oder Diskette kopieren, z.B. dh1:tools
2. Nun s:startup-sequence um das Folgende ergänzen:
Resident CLI L:Shell-Seg SYSTEM PURE ADD
Resident dh1:tools/Csh ADD
NewShell FROM s:Csh-startup
EndCLI
3. Die Datei s:Csh-startup erstellen, die das folgendes enthält:
Stack 8000
Csh -r s:firstlogin.sh
4. In die Datei s:firstlogin.sh alle Kommandos schreiben, welche nur nur
einmal aufgerufen werden sollen, etwa setmap, assign und setclock.
Dies wird eine Csh-Stapeldatei, bitte # als Kommentarzeichen
verweden und keine Punkt-Kommandos wie .key. Am Ende dieser
Datei soll stehen:
source s:login.sh
5. In der Datei s:login.sh stehen alle Kommandos, die für jedes neue
Shell-Window wieder ausgeführt werden sollen, z.B. alle 'alias' und
'set' Kommandos.
6. Und das Folgende sollte in der Datei s:shell-startup stehen, damit beim
Kommando NewShell oder von der Workbench her gleich eine Csh erscheint:
Csh s:login.sh
Achtung, alle danach folgenden Befehle werden erst dann ausgeführt,
wenn die Csh beendet wird !
Kickstart 2.0
1. CSH irgendwohin auf die Harddisk oder Diskette kopieren, z.B. dh1:tools
2. Nun s:startup-sequence bzw. s:user-startup um das Folgende ergänzen:
Stack 8000
Resident dh1:tools/Csh ADD
Csh s:firstlogin.sh
3. Bitte nun weiter bei Schritt 4 bzgl. Kickstart 1.3
Zusätzlich ist es empfehlenswert, CSH: irgendwohin zu 'assign'en, und Csh.doc
und alle Stapeldateien dorthin kopieren.
Also etwa:
assign CSH: dh1:tools
Ein generelles Installationsprogramm gibt es z.Z. nicht. Es ist auch
ziemlich schwierig auf alle denkbaren Fälle von Konfigurationen und
Sonderwünschen einzugehen. Der obig beschriebene Ablauf ist nur einmal
zu erledigen, jedes Update der Csh selber, betrifft normalerweise nur die
CSH selber, die vorliegende Anleitung und die Stapeldateien, nicht aber
die Art und Weise wie Cshell gestartet wird. Sollte dies denn doch der Fall
sein, bitte auf jeden Fall die hier beschriebene Prozedur durchlesen!
I Beschreibung
--------------
Diese Version von CShell ist der Nachfolger von:
Shell V2.04 (C)Copyright 1986, Matthew Dillon, All Rights Reserved
Shell V2.04M-V2.07M by Steve Drew
Shell V2.08MI, V3.xxA and V4.xxA by Carlo Borreo & Cesare Dieni
Shell V5.xxL by U. Dominik Mueller
Irgendwelche Wünsche, Fehlermeldungen, Bierflaschen oder Bugreports,
sind bitte an folgende Adressen zu senden:
FIDONET : Urban Mueller@2:302/906 (AUGL BBS)
INTERNET: umueller@iiic.ethz.ch
oder
U. D. Müller
Schulhausstrasse 83
CH-6312 Steinhausen
SWITZERLAND
Jedes Zeichen intelligenten Lebens ist willkommen.
('Scott me up Beamie, no intelligent lifeform down here...')
Bitte auch zuerst die Kapitel 'Einschränkungen' und 'Bekannte Fehler',
lesen, bevor eine Fehler gemeldet wird.
Die Support-Mailbox ist AUGL, +41 75 8 20 19, +41 75 8 20 18, +41 75 2 15 87
(alle Leitungen USRobotics HST) login='cshell',passwort='support'.
Bitte auch die Datei 'feedback.doc' lesen und wenn möglich abschicken.
Wenn es um Versionen vor 5.00 geht, bitte an wenden Carlo Borrea oder
Cesare Dieni wenden:
BITNET: PERUGIA@ICNUCEVM.BITNET
FIDONET: 2:332/602.0@FIDONET
oder
Carlo Borreo Cesare Dieni
Via G. Berio 34 Via G. Taddei 3
I-18100 Imperia I-56100 Pisa
Italy Italy
CShell darf nur unverändert und nicht gegen Profit verbreitet werden.
*** VERBREITEN SIE NIE VERÄNDERTE VERSIONEN VON CSHELL ***
Wenn jeder eigene Versionen schreibt und weitergibt, würden wir innerhalb
kürzester Zeit in Shell-Versionen begraben. Wenn eine Änderung an der
Shell gemacht wurde, und diese anderen Benutzern zur Verfügung gestellt
werden soll, dann sollte eine DIFF-Ausgabe oder eine Beschreibung dessen was
geändert wurde an den Autor geschickt werden.
EHRENHALLE
----------
Vielen Dank an alle Leute, die mir Feedback und Hilfestellung gegeben haben,
namentlich Eddy Carroll, Patrizio Rusconi, Allard Siemelink, Magnus
Heldestad, Roddi Walker, Roy Haverman, Steve Koren, Randell Jesup, Peter
Orbaek und der unbekannte Schwede, der für mich den 2-LF-Bug gefunden hat.
Besonderer Dank gilt den Übersetzern dieses Dokuments:
Roy Haverman, Jörg-Cyril Hoehle, Martin Horneffer, Hans-Christian
Huerlimann, Markus Illenseer, Daniel Pfulg, Patrizio Rusconi, Christian
Schneider, und mir selber...
Diese Version der Anleitung wurde von Markus Illenseer durch Entfernung
grausamer Rechtschreibfehler, unglücklicher Übersetzungen und wilder
Stilentartungen aus der deutschen Ur-Version erstellt. :-)
Flammen, Lexika, Duden, Weinflaschen bitte an
markus@techfak.uni-bielefeld.de
senden.
II ÜBERSICHT
-------------
CShell bietet eine bequeme Alternative zu den AmigaDOS Befehlen. Alle
Kommandos sind eingebaut und brauchen deshalb keine zusätzlichen Kommandos
im c: Ordner.
Die wichtigsten Möglichkeiten:
- Frei programmierbare Kommandozeilen-Eingabe
- Kommandospeicher (die letzten 50 Kommandos werden gespeichert)
- Pipes (Ein- und Ausgabeumleitung)
- Aliase mit Argumenten
- Variablen
- Suchmuster (* und ? für Dateinamen)
- Bedingte Anweisungen (if, else, endif)
- Stapeldateien
- Dateinnamen-Vervollständigung mit TAB
- Objektorientierte Möglichkeiten, Dateiklassen und Operationen.
- Viele eingebaute Kommandos zur Beschleunigung der Ausführung
- Volle Funktionalität auf VT-Terminals
Eine Übereinstimmung mit der unter UNIX (tm) weit verbreiteten CSH, TCSH
oder RC ist nicht ungewollt aber kann z.Z. nicht in allen Bereichen erreicht
werden (z.B. Jobhandling), wird durch das Klassenprinzip aber deutlich
verbessert.
CShell läuft mit minimalem Stack (4 KBytes), aber für kompliziertere
Aliase und Stapeldateien sollte der Stack auf 8K erhöht werden bevor die
CShell startet.
Wird die CShell zum ersten Mal benutzet, bitte folgendes beachten:
- Die eingebauten Kommandos müssen in Kleinschrift eingegeben
werden, und können z.T. abgekürzt werden.
- Das Kommando 'c:Execute' kann nicht umgeleitet werden.
AmigaDOS Stapeldateien können weiterhin mit 'source' ausgeführt
werden, sofern jene keine .-Kommandos wie .key enthalten.
- Jederzeit Auskunft über ein gewünschtes CShell-Kommando
erhältlich, mittels 'man <kommando>'.
III Einschränkungen
-------------------
Der folgende Fehler betrifft nur V36 von Kickstart 2.0: Die internen
Kommandos können nicht gestartet werden. Dasselbe gilt für Kommandos in C:,
wenn diese mit dem AmigaDOS 'Resident' Kommando resident gemacht wurden. Mit
Csh's 'resident' funktionieren solche. Deshalb sollten die internen Residents
nicht verwendet werden. Dies kann mit dem Start-Schalter -i0 erreicht werden,
wenn Kickstart V36 verwendet wird.
Unter Kickstart 1.3, können AmigaDos-Residents nicht direkt gestartet werden.
Dies kann durch die Option -r verbessert. Diese kopiert die AmigaDOS
Resident Liste einmalig in die ARP-Resident-Liste (Diese Residents können
nicht mehr entfernt werden). Es wird versucht, eine bessere Lösung zu
finden.
Die beste Lösung unter beiden Kickstarts ist es, nur Csh selber AmigaDOS
resident zu installieren, und alle anderen Kommandos, wenn vorhanden, nur ARP
resident zu installieren. Unter 1.3 kann die Shell (wie auch alle anderen
Kommandos) nur von der Resident-Liste gestartet werden, wenn vorher das
Kommando 'resident CLI l:Shell-seg' und 'newcli' eingegeben wurden.
Das c:Execute Kommando kann nicht umgeleitet werden, es setzt keinen Return-
Kode und verursacht unter Umständen andere Probleme. Es arbeitet überhaupt
nicht mehr wenn es einen anderen Namen hat.
Der VDK: Handler und Frank Seidel's BootRam-Handler haben einen Fehler beim
setzen des Datei Datums. Soll das copy Kommando gebraucht werden, sollten
die Option -d und -p verwendt werden, sonst kann es sein das das Datum
fehlerhaft ist. (Das ist kein Shell Fehler)
Wenn Csh mit Conman verwendet wird kann in Betracht gezogen werden, Csh mit
der Option -a zu starten. Dies schaltet die Csh-Editier-Funktionen in der
Kommandozeile aus, statt dessen werden die des Conmans benutzt. Aber
dadurch gehen viele Csh Möglichkeiten verloren, wie z.B.
die Dateinamen-Vervollständigung.
CB-Handler (ein Tool das im CLI Window eine Scrollbar installiert) ist nicht
100% kompatibel zu Csh. Der Inhalt des CB-Handlers-Logs stimmt nicht immer
mit dem tatsächlichen Screen-Inhalt überein.
IV. BEMERKUNGEN ZU DEN PIPES
----------------------------
PIPES
PIPES benutzen TemporärDateis im Ordner t:. Bitte vorsichtig mit
Suchmustern wie 't:*' da diese auch die Temporärdateien betreffen
könnten. Die Temporärdateien werden nach dem Beenden des Pipe
Segment gelöscht.
Die benutzen Dateinamen sind einmalig, selbst wenn mehrere Shell's
nebeneinander laufen.
Von nun an ist es auch möglich, interne Kommandos mittles Pipe in ihren
Ein- und Ausgaben zu steuern.
z.B. 'echo charlie >ram:x' oder 'echo "echo mem | Csh" | Csh'
Kein BCPL Programm sollte mit Output-Append '>>' umgeleitet werden.
V. KOMMANDO PRÄPROZESSOR
--------------------------
PRÄPROZESSING
Präprozessing wird in der Kommandozeile ausgeführt, bevor diese an
interne oder externe Routinen weitergegeben wird.
^c Wobei c ein Zeichen ist, daß in ein Kontroll Zeichen gewandelt
wird. z.B. '^l' steht für Control-l.
\233 Fügt das Zeichen mit dem oktalen Kode 233 ein. Keine Werte
zwischen 200o und 232o benutzen, da diese spezielle Bedeutung haben.
\240 ist der Wort Seperator. (Ein \ )
$Name Wobei Name ein variabler Name ist. Variablennamen können aus den
folgenden Zeichen bestehen: 0-9, a-z, A-Z und dem Unterstrich '_'.
Der Inhalt der spezifizierten Variablen wird gebraucht. Falls die
Variable nicht existiert, wird der Name selber eingesetzt.
z.B. Wenn die Variable 'i' 'Charlie' enthält, dann ist '$i' ->
'Charlie' Wenn die Variable aber nicht existiert dann bleibt '$i' ->
'$i'.
; Trennt Kommandos. 'echo charlie ; echo ben.' So können mehrere
Kommandos auf eine Zeile geschrieben werden.
' ' (ein Leerzeichen). Leerzeichen trennen Argumente.
"Zeichenkette" ein in Anführungszeichen stehende Zeichenkette. Das
schliessende Anführungszeichen muss nicht gesetzt werden.
z.B. Sollen fünf Leerzeichen und ein 'a' ausgeben werden:
echo a -> a
echo " a -> a
\c Verhindert den Inhalt eines Spezialzeichens.
'\^a' ist ein Circumflex und ein a und kein Control-A.
Ein Backslash wird wie folgt geschrieben: '\\' .
Dies wird ebenso benutzt, um das Suchen nach Aliases zu unterbinden.
>Datei Spezifiziert Ausgaben Umleitung. Die Ausgabe des Kommandos wird
in die spezifizierte Datei geschrieben.
>>Datei Spezifiziert Ausgaben Umleitung. Die Ausgabe wird an eine
bestehende Datei angehängt. (Arbeitet nicht mit BCPL Programmen).
<Datei Spezifiziert Eingaben Umleitung. Das Kommando bekommt seine
Eingaben aus der Datei 'Datei' anstatt von der Tastatur.
Achtung, nicht alle Kommandos erwarten eine Eingabe. Es hat
z.B. keinen Sinn zu schreiben 'echo <charlie', da das 'echo'
Kommando nur seine Argumente ausgibt.
| PIPE Spezifikator. Die Ausgabe des Kommandos auf der linken Seite,
wird zur Eingabe des Kommandos auf der Rechten. Die Shell braucht im
Moment Temporäredateien, um die Daten zwischenzuspeichern.
!! Führe das letzte Kommando aus.
!nn (<nn> ist eine Zahl). Fügt das Kommando aus dem Kommando-Speicher
Nummer <nn> ein.
Siehe HISTORY Kommando.
!teil Sucht rückwärts durch den Kommando-Speicher nach einem Kommando
das gleich beginnt wie <teil>, und führt dieses aus.
# Kommentar. Der Rest der Zeile wird übergangen.
Beachte: \# hebt die spezielle Wirkung des '#'-Zeichens auf.
{e hi;e ho} Führt zwei Kommandos wie eines aus, so dass sie umgeleitet
werden können. (Siehe ALIAS Kommando). Die schliessende
geschweifte Klammer muss nicht geschrieben werden.
$(fasel) Fügt die Ausgabe des Kommandos 'fasel' an dessen Position
in der Kommandozeile ein. Jede Zeile der Ausgabe gilt als
ein Argument. Die schliessende Klammer ist optional.
'fasel' Fügt die Ausgabe des Kommandos 'fasel' an dessen Position
in der Kommandozeile ein. Jedes Wort der Ausgabe gilt als
ein Argument. Mehrere Leerzeichen werden entfernt.
Die schliessende Klammer ist optional.
Achtung, den Unterschied zwischen folgendem bemerken:
alias count {echo eins;echo zwei}
alias count "echo eins;echo zwei
Die erste Form schafft ein Alias, welches ein lokales Alias ent-
hält, während die 2. ein normales Alias generiert. Auch werden
Zeichen in geschweiften Klammern nur einmal interpretiert, sodass
nicht für jedes Spezialzeichen wieder einen Backslash gebraucht
wird.
Darum sehen die Kommandos in geschweiften Klammern so aus
als wenn sie auf der Kommandozeile eingetippt würden. Beispiel:
forever {echo \#
forever "echo \\\#
Ein Block kann sich über mehrere Zeilen ausdehnen. Siehe 'source'
Kommando.
VI. KOMMANDO ZEILEN EDITIEREN
-----------------------------
Die Kommandozeile kann bis zu 255 Zeichen lang sein.
Einfügungen und Löschungen funktionieren auch über mehrere Zeilen.
Die Stapeldatei 'menu.sh' installiert ein Intuition Menu das die meisten
Editierfunktionen enthält.
EDITIEREN
-- CURSOR BEWEGEN--
Pfeil Links Ein Zeichen nach Links
Pfeil Rechts Ein Zeichen nach Rechts
Shift-Pfeil Links Ein Wort nach Links
Shift-Pfeil Rechts Ein Wort nach Rechts
ESC-Pfeil Links Gehe zum Beginn der Zeile (^A) (^Z)
ESC-Pfeil Rechts Gehe zum Ende der Zeile (^E)
-- LOESCHEN --
Backspace Zeichen Links des Cursors
Del Zeichen Unter dem Cursor
ESC-Backspace Wort Links des Cursors (^W)
ESC-Del Wort Rechts des Cursors
ESC-x-Backspace Bis zum Beginn der Zeile (^B)
ESC-x-Del Bis zum Ende der Zeile (^K)
ESC-d Die gesammte Zeile (^X)
-- KOMMANDO-SPEICHER --
Pfeil aufwärts Im Kommando-Speicher ein Kommando nach oben
Pfeil abwärts Im Kommando-Speicher ein Kommando nach unten
Shift-Pfeil aufwärts Erstes Kommando im Kommando-Speicher
das 'passt'
Shift-Pfeil abwärts Geht zum Ende des Kommando-Speichers
ESC-Pfeil aufwärts Geht zum Beginn des Kommando-Speichers
ESC-Pfeil abwärts Geht zum Ende der Kommando-Speichers
ESC-! Holt Kommando von einem schon eingegebenen Teil
aus Kommando-Speicher
^T Fügt die letzte Zeile ein, ausser dem ersten Wort
^P Kopiere vorhergehendes Wort. (Nützlich für mv)
-- DATEINAMEN VERVOLLSTAENDIGUNG --
TAB Fügt den ersten passenden Dateinamen ein
Shift-TAB Fügt längsten passenden gemeinsamen Dateinamen ein
ESC-TAB Fügt alle Dateinamen ein die passen.(Auch ESC-*)
ESC-c Quick-CD mit Wort links des Cursors (TAB -> Cycling)
ESC-~ Fügt den letzen Ordner ein
^D Zeigt alle Dateien die dem Muster einsprechen
(Auch ESC-=)
-- ZEILE AUSFUEHREN--
Return Führt Zeile aus
ESC-Return Führt akt. Zeile des Kommando-Speichers aus und zeigt
nächste
^N Speichert aktuelle Kommandozeile und geht zur nächsten
^\ EOF (Csh wird abgebrochen)
-- VERSCHIEDENES --
^L Schreibe die momentane Zeile nochmals.
^O Echo ^O
^R Wiederhole letztes Editierkommando
^U Letzten Editierbefehl Rückgängig machen
ESC-i Umschalten Einfüge/Überschreibemodus
f1-f10 Führe Kommando aus wenn Variable existiert.
F1-F10 Noch mehr Kommandos (Geshiftete f Tasten).
Help Führt help Kommando aus.
Wenn der Cursor auf oder direkt hinter einem noch nicht kompletten Dateinamen
steht und die TAB Taste gedrückt wird, setzt Cshell den ersten Dateinamen
(alphabethisch sortiert) ein, der dem teilweise geschreibenen Namen
entspricht. Alle Wildcards sind hier erlaubt. Wenn keine gegeben sind, wird
automatisch ein '*' angehängt. Durch wiederholtes Drücken der TAB Taste kann
durch eine Liste aller Dateien gegangen werden, die dem nicht kompletten
Dateinamen entsprechen.
Shift-Tab fügt nur jenen Teil der Zeichenkette ein, der allen gefundenen Namen
gemeinsam ist.
ESC-Tab fügt den Namen des Ordners ein, in den gewechselt würde, wenn
mit dem aktuellen Teil der Zeichenkette ein Quick-CD ausführt würde.
Achtung, ^D ermöglicht jetzt das Verlassen der Stapeldateien wie unter
AmigaDOS, oder Ordner anzeigt ohne Csh zu verlassen. Soll alles beim Alten
belassen werden, sollte ein 'keymap 0 4=41' ausgeführt werden.
Die Ctrl-F,Ctrl-G,Ctrl-V und die Ctrl-Y Kombination sind unbesetzt. Diese
können beliebig belegt werden (siehe Kapitel XV). Auch alle voreingestellten
Kombinationen können neu belegt werden.
VII. FUNKTIONSTASTEN
--------------------
Funktionstasten
setzen jetzt Text an der aktuellen Position der Kommandozeile ein. Der Text
kann mit einem '^M' terminiert werden, was einem <Return> entspricht und
damit das Kommando sogleich in der Kommandozeile ausführt. 'f1' bedeutet
Funktionstaste ohne Shift, 'F1' mit Shift. Die meisten Funktionstasten
haben eine Voreinstellung, aber kann diese natürlich auch anders definiert
werden.
$ set f1 dir df0:^M
würde den Text 'set f1 dir df0:' auf die Kommandozeile hinzufügen
und danach noch <Return> ausführen.
$ set f1 dir
würde den Text 'dir' auf die Kommandozeile hinzufügen worauf der Benutzer
dann z.B. ' df0:<Return>' eingeben kann.
VIII. SHELLKOMMANDOS
--------------------
START OPTIONEN
Zuerst die Shell vom CLI aus starten:
Csh [-abcfiknstv] [-c Kommando;..;KommandoN]
Csh [-abcfiknstv] [Stapeldatei1 ... StapeldateiN]
-a AUX: Modus. Kein Kommandozeilen-Editieren und Text-Markierung.
-b Startet Shell im Hintergrund, was heisst, nur Task Priorität -1.
-c Erlaubt Ausführung EINER Kommandozeile und verlässt Shell gleich
wieder. Nützlich um Shellkommandos im Hintergrund oder von einer
externen Applikation aus auszuführen. Bsp.:
Run Csh -c "dir df0:; copy -r df0: df1: >nil:; echo Done"
-f Startet Shell im Vordergrund, was heisst, Task Priorität 1.
Diese Priorität kann wieder auf 0 gesetzt werden am Ende der .login
Datei
-i0 Keine INTERNEN residents. Für V36 Kickstarts.
-k Setzt _nobreak bevor irgendwas getan wird.
-n Unterdrückt starten von s:.login
-r Kopiert die AmigaDOS resident list zur ARP resident list.
Diese kann nicht mehr entfernet werden. Kein Kopieren unter
Kick 2.0 oder wenn ARP residents existieren.
-s Erlaubt global den Stern '*' anstatt '#?' in AmigaDOS 2.0
-t Terminal Modus. Es ist möglich an einem VT100-kompatiblen
Terminal Kommandozeilen zu editieren sowie auch Text-
Markierung zu betreiben. Backspace und DEL Austausch wird
mit dem 'keymap'-Kommando bewerkstelligt.
-v setzt _verbose zu 'hs' bevor irgendwas getan wird.
Unter 1.3 ist es wohl am Besten Csh mit dem AmigaDOS Kommando Resident
in der s:startup-sequence resident zu machen und dann mit der Option -r
zu starten. Auf diese weise kannst du eine weitere residente Csh
aus der Csh heraus starten. BEACHTE: Residents, die mit -r kopiert
wurden können nicht mehr entfernt werden! Es ist ratsam für alles
andere ausser Csh das interne resident Kommando zu nutzen.
KOMMANDOAUSFüHRUNG
Interne Shellkommandos unterscheiden Gross- und Kleinschreibung und
können abgekürzt werden.
Das erste Argument ist der Kommandoname... schauen wir uns mal an
wie die Shell versucht, es auszuführen:
1) Die Alias Liste wird nach dem exakt passenden Muster, das
vorgegeben wurde, durchsucht.
2) Die interne Kommando-Liste wird nach einem teilweise passenden
Muster abgesucht (z.B. 'resi' anstatt 'resident').
Jedenfalls sollte das Muster genügend beinhalten, damit das
Kommando auch einmalig ist.
3) Danach wird die Funktions-Liste nach dem exakt passenden Muster
abgesucht. Wenn eine gefunden wird, dann wird dessen Resultat
auf die Standard-Ausgabe ausgegeben.
4) Jetzt nimmt die Shell an, dass es sich um ein externes Kommando
handelt. Argumente mit Freizeichen, Strichpunkten oder leeren
Zeichenketten werden mit Anführungs- und Schlusszeichen umrahmt.
(Wichtig!)
5) Falls es sich um ein Ordner handelt, wird ein 'cd <Datei>'
ausgeführt.
6) Die AmigaDOS und ARP resident list werden abgesucht (Es ist
'resident' von der Shell zu benützen, um eine Datei in der ARP
Liste hinzufügen; entfernen mit add/remove).
7) Wenn die Datei im aktuellen Ordner ist,und auch ausführbar ist,
dann wird sie als Programm gestartet.
8) Es wird im AmigaDOS path (Pfad) und c: (Achtung, Path auf C:
erweitert, funktioniert nicht unter 2.0. Dazu 'path'
verwenden).
9) Jetzt wird der Shell Pfad ($_path) abgesucht. Wenn das
Kommando dort gefunden wird, und ausführbar ist, wird es
gestartet. Wenn das 's'-Bit gesetzt ist, wird es unter der
zugewiesenen Shell ausgeführt. Siehe FREMDE SHELLS.
10) Wenn eine Datei existiert mit Endung '.sh' und denselben
Basisnamen im aktuellen Ordner oder im Shell Pfad, dann
wird sie mit dem Shellkommando 'source' ausgeführt.
11) Als nächstes wird die Variable _rxpath untersucht. Wenn dort
eine Datei mit der Endung '.rexx' existiert und denselben
Basisnamen im aktuellen Ordner oder im '$_rxpath', dann wird
sie mit dem Arexxkommando 'RX <Datei>' ausgeführt.
12) Wenn bis hierhin nichts gefunden wurde, wird der Datei ein 'exec'-
Kommando geschickt. Siehe Kapitel XIV für weitere Infos über
Klassen und Aktionen.
Um zu erzwingen, dass ein externes 'dir'-Kommando gestartet wird, muß
'Dir' eingeben werden. Es wäre eine gute Angewohnheit alle externen
Kommandos mit einem grossgeschriebenen Erstbuchstaben aufzurufen,
obwohl es nicht notwendig ist.
AUTOMATISCHES SOURCING
Sourcing (=Ausführen von Stapeldateien) kann erreicht werden indem
die Stapeldatei mit der Endung '.sh' aufgerufen wird. Also, wenn
'Quell' aufgerufen wird, und die Datei 'Quell.sh' im aktuellen
Ordner oder im Shell Pfad existiert (BEACHTEN SIE: NICHT im
AmigaDOS Pfad), dann wird sie mit dem 'source' Kommando mit allen
Argumenten, die in der Variable $_passed platziert wurden, ausgeführt.
Das wäre dasselbe, als würde 'source Quelle.sh' eingeben werden.
FREMDE SHELLS
Werden unterstützt durch Schlüsselzeichen zu Beginn dieser
Stapeldateien. Wenn eine Datei im $_path ein s-bit hat, werden die
ersten paar Zeichen gelesen. Wenn die ersten zwei Zeichen '/*', '#!'
oder ';!' seien sollten, wird der Rest der ersten Zeile als der Name
der Shell interpretiert, die das Skript ausführen soll. Wenn diese
magischen Zeichen fehlen, wird c:Execute benutzt.
Beispiele:
/*RX /* Eine Arexx-Stapeldatei */
#!SKsh -c source # Eine SKsh-Stapeldatei mit Argument
SUCHMUSTER
Die meisten Shellkommandos werden mehrere Argumente, die das
Resultat einer Suchmuster Ergänzung sind, akzeptieren. Auch wenn
ein externes Kommando aufgerufen wird, wird die Shell zuerst die
Suchmuster Ergänzung zu einzelnen Argumenten separieren. Wird ein
externes Kommando mit eigener Suchmuster Ergänzung verlangt, ist es
sinnvoll, Anführungszeichen um das spezielle Suchmuster zu setzen,
oder ein Alias zu benützen (siehe Erklärung von 'alias').
Beispiele:
arc a new.arc *.txt #die Shell wird Ergänzungen zu arc schicken.
arc a new.arc "*.txt" #arc soll die Suchmuster selber expandieren.
alias arc "*a Arc $a" #nun wird die Shell nie ergänzen.
Erlaubte Suchmuster:
? Zu irgendeinem (1) Zeichen passend.
* Zu irgendeiner Zeichenkette passend. (Beliebig lang!)
.../* Rekursiv suchen in alle Unterordner hinunter
vom aktuellen Ordner ausgehend.
~ Ausschluss der Suchmusterspezifikation.
! Gleichbedeutend zu '~'. Wird aus Kompatibilitätsgründen
unterstützt.
& Kommt als Prefix vor das Muster, fragt Bestätigung für
jede Datei ab.
[] Zeichenklasse. [a-c] läßt die Zeichen a, b und c zu.
~ Der vorherige aktuelle Ordner (sofern
das ~ abgesondert dasteht).
BEACHTE: Das Muster muss ein '?' oder ein '*' enthalten, sonst
wird es nicht als solches betrachtet. Auch ein einzelnes '?' als
Muster im ersten Argument eines Kommandos kann nicht ergänzt werden,
da dies an das Kommando weitergegeben wird, damit dieses Kommando
eine Kurzanleitung von sich selbst ausgibt (Help-Funktion der
internen Kommandos).
Hier einige Beispiele für Suchmuster, um das Oben gesagte besser
zu illustrieren:
df0:.../* Alle Dateien in allen Ordnern von df0:
df0:.../!*.info Alle Dateien von df0: aber OHNE Dateien mit der
Endung '.info'
!*.o !*.c Alle Dateien im aktuellen Ordnern ausser
solche mit Endung '.o' oder '.c'
df1:&* Alle Dateien in df1:, aber Bestätigung durch
Abfrage
*.[co] Alle Dateien mit Endung '.c' oder '.o'
~*.[co] Alle Dateien ohne Endung '.c' oder '.o'
~ Vorheriger aktueller Ordner
~/*.c Alle '.c'-Dateien im vorherigen aktuellen
Ordner
~// Das Vaterordner vom vorherigen aktuellen
Ordner
. Das aktuelle Ordner
./fasel.c Gleichbedeutend mit fasel.c
.. Der Vaterordner vom aktuellen Ordner
../fasel.c Die Datei fasel.c im Vaterordner
Achtung, einige Kommandos verhindern Suchmuster Ergänzung:
dir, rpn, whereis und window.
Diese Kommandos werden die Suchmuster selber erweitern.
Darum wird auch
dir @without( *.? , *.o )
nicht funktionieren. Anstelle dessen ist zu benutzen:
set arg @without( *.? , *.o );dir $arg
Es gibt eine Ausnahme in den Regeln oben: Ein einzelnes '?' als
erstes Argument wird nicht erweitert. Stattdessen erlaubt es eine
Anzeige des Kommandohilfstextes.
Folgende Symbole werden noch nicht unterstützt durch Suchmuster
Ergänzung, werden aber von 'search -w' und '@match()' akzeptiert:
( | ) mit OR suchen (OR=logisches ODER)
# einmal oder mehrmals das unmittelbar folgende Zeichen nach #
Beispiele:
"k#a" passt zu: ka, kaa, kaaa, etc.
"hel(lo|p)" passt zu: hello oder help.
VIII Shell Kommandos
--------------------
ABORTLINE
Gebrauch: abortline
Beispiel: echo a; abort; echo b
Ergebnis: a
Verhindert, daß der Rest der Zeile ausgeführt wird. Wird
üblicherweise im Zusammenhang mit der Ausnahme-Behandlung
verwendet.
ACTION
Gebrauch: action [-a] Methodenname Datei [Argumente]
Wendet eine Methode auf ein Datei an.
Optionen:
-a (abort)
Es wird 0 bei Erfolg, 1 im Fehlerfalle zurückgegeben.
Sonst werden die normalen Ferhlercodes 10 oder 11
zurückgegeben.
ADDBUFFERS
Gebrauch: addbuffers Gerät Puffer [Gerät Puffer...]
Beispiel: addbuffers DH1: 200
Wie das gleichnamige AmigaDOS Kommando. Weist einem
AmigaDOS Gerät neue Puffer zu. Jeder Puffer verbraucht 512
Bytes RAM. (Chip!)
ALIAS
Gebrauch: alias [Name [Kommando Zeichenkette] ]
Beispiel: alias vt "echo Starte VT100;run sys:tools/vt100"
Weist einem Namen eine (Kommando-)Zeichenkette zu. Mehrere
Kommandos können zu einem 'Alias' zusammengefasst werden, wenn
sie wie im Beispiel in Anführungszeichen stehen, und mit
Semikola getrennt werden. Danach braucht nur noch der Name
eingegeben zu werden und die komplette Kommando-Zeile wird
ausgeführt.
'Alias'e dürfen sich gegeseitig ausrufen, aber nicht
rekursiv. Dadurch funktioniert z.B. so etwas:
alias ls "ls -s"
Rekursivität wird von der Shell nicht abgefangen !
Das Ersetzen durch 'alias'e kann wie folgt
verhindert werden: \ls
Übergabe von Argumenten an ein Alias:
Gebrauch: alias Name "%Var[%Var...] [Kommando Zeichenkette]"
alias name "*Var[%Var...] [Kommando Zeichenkette ]"
Beispiel: alias xx "%q%w echo Hallo $q, Du siehst $w aus!
xx Willie heute gut
Ergebnis: Hallo Willie, Du siehst heute gut aus!
Diese zweite Form des Alias-Befehls erlaubt es durch die
Verwendung von Variablennamen, Argumente mitten im der
Zeichenkette zu verwenden. Diese Variablen sind lokal und
außerhalb des Alias nicht mehr wirksam. Diese haben keinen Einfluß
auf andere gleichnamige Variablen.
Werden mehrere Argumente angegeben, wird jeder Variablen
ein Wort zugewiesen, der letzten aber, wie im Beispiel, der
Rest der Zeile.
Ein "*" statt dem "%" verhindert die Ausführung von
Suchmustern. Beispiel:
alias lharc "*a lharc $a
Um die Suchmuster auszuführen, kann folgendes verwendet werden:
exec set a $a
IMPLIZITE ALIAS'e:
Gebrauch: {Kommando;Kommando}
{%var Kommando;Kommando} Argument1 .. ArgumentN
Beispiel: {%tmp echo %tmp %tmp} Hallo
Ergebnis: Hallo Hallo
Geschweifte Klammern definieren temporäre Aliase. Ihre
Ein- und Ausgabe kann als Ganzes umgelenkt werden, sie
können Argumente und lokale Variablen haben. Diese zählen als
ein Argument, selbst wenn sie Leerzeichen enthalten (wie bei
Anführungszeichen) und sie können beliebig geschachtelt
werden. Die schließenden Klammer ist optional, wenn jene am
Ende einer Zeile steht. Beispiel:
alias sicher {e "Sind Sie sicher?"; input -s Klar}
AREXX
Die Kommandos RXREC und RXSEND werden von der Cshell zur Verfügung
gestellt. Damit ist optimales Arbeiten mit AREXX von der Shell
gewährleistet. Der Rexxmast ist natürlich selber zu installieren,
am besten in s:startup-sequence. Bitte auch im AREXX-Manual oder
im AmigaDOS-Manual (WB 2.0) nachlesen.
ASCII
Gebrauch: ascii
ascii Zeichenkette
Zeigt beim Aufruf ohne Zeichenkette eine komplette ASCII
Tabelle. Optionen:
-h : zeigt die Nummern in hexadezimaler (sedesimal) Schreibweise
-o : zeigt die Nummern in oktaler Schreibweise
ASET
Gebrauch: aset Name Wert
Beispiel: aset INCLUDE include:
Erzeugt eine Umgebungs-Variable im veralteten Aztec/ARP Format.
ASSIGN
Gebrauch: assign
assign Logisch
assign [-lnp] Log.1 Phys.1 [ ... Log.N Phys.N]
Die erste Form zeigt alle Assigns.
Die Zweite löscht ein Assign.
Die Dritte weist dem logischen Gerät 'Logiisch1' das
physikalische 'Physikalisch1' zu, etc.
-l erzeugt late-binding Assigns (nur unter Kick 2.0)
-n erzeugt non-binding Assigns (nur unter Kick 2.0)
-p erzeugt path-Assigns (nur unter Kick 2.0)
Eine Erklärung dieser Assign-Arten findet sich im AmigaDOS
Handbuch.
BASENAME
Gebrauch : basename Var Pfad [Pfad ...]
Beispiel : basename x df0:c/Dir # setzt x auf "Dir"
basename y sys:tool/iconed # setzt y auf "iconed"
Setzt die angegebene Variable auf den Dateinamen eines Pfades.
CAT
Gebrauch : cat [-n][Datei1 ... DateiN]
Beispiel : cat fasel.txt
Schreibt die angegebene Datei(en) auf die Standard-Ausgabe. Wenn
keine Datei angegeben wird, wird statt dessen die
Standard-Eingabe verwendet (Hinweis: ^\ markiert das
Datei-Ende). CAT ist nur zur Ausgabe von Text-Dateien gedacht.
Die -n Option nummeriert die ausgegebenen Zeilen.
CD
Gebrauch : cd [Pfad]
cd -g Gerät1 [Gerät2 .. [GerätN] .. ]
Wechselt den aktuelle Ordner. Die Angabe von '..'
zum Wechseln in den Vaterordner ist erlaubt (allerdings
handelt es sich dabei um ein Csh-spezifisches Feature -
normalerweise wird auf dem Amiga "/" verwendet).
In den meisten Fällen ist die Angabe von 'CD' überflüssig.
Die einfache Eingabe eines Ordners reicht der Csh.
Ein einzelnes '~' in der Kommando-Zeile wechselt stets zum
jeweils letzten aktuellen Ordner.
In zwei Fällen ist dennoch die Angabe von 'CD' sinnvoll:
Die Eingabe 'cd *tem' wechselt in den Ordner
dessen Name passt.
Die zweite Form erzeugt eine Liste aller Ordner der
angegebenen Geräte. Diese wird in der Datei gespeichert, das
in der Variablen $_qcd angegeben ist (default:
'Csh:Csh-qcd'). Diese Datei wird nicht erweitert, sondern
stets überschrieben. Wenn diese Datei einmal existiert,
kann mit CD auch in Ordner gewechselt werden, die nicht
im aktuellen Ordner liegen.
Existieren zwei Ordner, von denen einer häufiger
gebraucht wird, so sollte dieser zuerst in der qcd-Datei stehen.
Ebenso kann die qcd-Datei sortiert werden (mit 'sort').
Es ist auch möglich, eine Abkürzung des Ordners einzugeben. Dazu wird
kein '*' benötigt. Sollte dann versehentlich der falsche Ordner
angesprochen werden, so können durch Wiederholen der Kommando-Zeile
(Cursor-Up + Return) alle passenden Ordner angezeigt bekommen.
Außerdem können logische Geräte und Assings in die qcd-Datei
aufgenommen werden. So kann z.B. nach 'PageStream:' gelangt werden,
indem 'cd page' eingegeben wird.
CD ohne Argumente zeigt den aktuellen Ordner an.
CLASS
Gebrauch : [-n] Name {type=Argument} [ "actions" {action=Kommando} ]
Beispiel : class zoo offs=20,dca7c4fd ext=.zoo actions view="zoo l"
Definiert eine neue Klasse von Dateien und die Methoden, die
auf solche in verschiedenen Fällen angewendet werden sollen.
Siehe Abschnitt XIV: Objekte
Optionen : -n alte Definition löschen
CLOSE
Gebrauch : close [Datei-Nummer]
Schließt die angegebene, mit OPEN geöffnete Datei. Ohne
Angabe einer Datei-Nummer werden alle Dateien geschlossen. S.a.
FLIST und OPEN.
CLS
Gebrauch : cls
Ein Alias. Löscht den Bildschirm, allerdings auch auf
Terminals, wozu echo ^l nicht reicht.
COPY
Gebrauch : copy [-udfpm] Datei Datei
oder : copy [-udfpm] Datei1 .. DateiN Ord
oder : copy [-rudfp] Ord1...OrdN Datei1...DateiN Ord
Optionen:
-r rekursiv, auch Unterordner kopieren.
-u update, nicht kopieren, wenn eine neuere Version existiert.
-f freshen, nicht kopieren, wenn die Ziel-Datei nicht
existiert oder neuer ist.
-d Datei-Datum nicht mitkopieren.
-p Sicherheits-Bits nicht mitkopieren.
-m löscht das Original. Funktioniert nicht mit -r zusammen.
Beispiel : copy -r dh0: dh2:
Kopiert Ordner oder Dateien. Wenn Ordner
kopiert werden sollen, muß die Option -r angegeben werden,
um auch Unterverzeichnisse mitzukopieren. Sonst werden nur
die Dateien der oberen Ebene kopiert.
Es werden alle Dateien, die gerade kopiert werden, und alle
Ordner, die gerade angelegt werden, angezeigt. Diese
Ausgabe kann mit Ausgabe-Umlenkungen vermieden werden.
Z.B.: copy -r dh0: dh2: >NIL:
COPY bricht nach den aktuellen Datei ab, falls CTRL-C
gedrückt wird.
COPY setzt normalerweise das Datum des Ziel-Dateien auf das
des Quell-Dateien. Dies kann mit -d verhindert werden.
Analog werden die Sicherheits-Bits behandelt. Dies wird
mit -p verhindert. Das Archive-Bit wird immer gelöscht.
COPY erzeugt jetzt den Ziel-Ordner selbst, falls er
noch nicht existiert, falls 'copy [-r] Ord Ord' eingegeben
wurde. Bei der Eingabe von 'copy Datei Datei Datei Ord' muß
'Ord' jedoch schon existieren.
CP
Synonym zu COPY.
DATE
Gebrauch :date [-sr] [neues Datum] [neue Zeit]
Beispiel : date Wednesday # gemeint ist NÄCHSTER Mittwoch
Wird verwendet um das System-Datum und/oder -Zeit zu setzen. Alle
Standard-Optionen können verwendet werden(yesterday, tomorrow, etc.).
Führende Nullen sind nicht erforderlich.
Ohne Parameter wird (aktuelle) DD-MMM-YY HH:MM:SS angezeigt.
Optionen:
-s speichert die aktuelle Zeit
-r zeigt die verstrichene Zeit seit der gespeicherten aufs
Hundertstel genau an. (Sinnvoll für Stapeldateien)
DEC
Gebrauch : dec Variablenname [Wert]
Beispiel : dec abc
Decrementiert (verringert) das Numerische Äquivalent der Variablen um
den angegebenen Wert (Vorgabe ist 1) und setzt das
ASCII-Zeichenketten-Resultat zurück in die Variable.
DELETE
Gebrauch : delete [-p][-r] Datei1 [..DateiN]
Beispiel : delete fasel.txt frust.c
Lösche die angegebenen Dateien. Das Kommando gibt immer Fehlerkode0
zurück. Leere Ordner können gelöscht werden. Die Option '-r'
löscht nicht-leere Ordner indem es alle Unterordner rekursiv löscht.
Wird die Option '-p' angegeben, können löschgeschützte Dateien
gelöscht werden.
Beim Löschen mit Suchmustern werden die Dateien aufgelistet wie sie
gelöscht werden. Dieses kann unterdrückt werden, indem nach nil:
umgeleitet wird.
Wird die Option -q angegeben, werden keine Fehlermeldungen ausgegeben,
wenn eine zu löschende Datei nicht existiert oder nicht gelöscht
werden konnte.
DIR
Gebrauch : dir [-abcdfhiklnoqstuv] [-z lformat] [Pfad Pfad ... ]
Beispiel : dir -ts downloads:
dir -lz "%7s %-.16n %m" *.c
Optionen:
-d nur Ordner listen
-f nur Dateien listen
-h nur Dateien listen, die nicht mit einem Punkt anfangen, mit
'.info' enden oder das h-Flag gesetzt haben.
-s kurze Multi(4)-Kolonen Anzeige
-c keine Farbänderung für Ordner
-q zeigt keine Blocklängen an
-o zeigt Datei-Kommentare an
-n nur Namen anzeigen
-p volle Pfadnamen anzeigen und Ordner-Titel unterdrücken
-a zeigt das Alter aller Dateien im Format Tage Stunden:Minuten an
-i identifiziert jede Datei, zeigt den Typ statt des Datums
Siehe Kapitel XIV CLASSES
-v summiert rekursiv alle Längen der Dateien in einem Ordner
-l sortiert Dateien nach deren Länge, längste zuerst.
-t sortiert Dateien nach deren Zeit, neueste zuerst.
-k sortiert Dateien nach deren Klasse
-b sortiert die Dateien rückwärts
-g gibt Ordner am Anfang aus
-e gibt Ordner am Ende aus
-u es müssen genau zwei Ordner gegeben sein. Zeigt Dateien,
die nur im ersten Ordner, in beiden oder im Zweiten vorkommen
-z wählbares Ausgabeformat
Zeigt einen Ordner mit angegebenen Dateien. Voreingestellte Ausgabe
zeigt Datum, Sicherheits-Bits, Block-Grösse, Byte-Grösse und gesammten
Platzverbrauch an.
Sicherheits-Bits beinhalten neue 1.2/1.3 Bits (siehe protect) und
ein 'c'-Bit welches anzeigt, das diese Datei einen Kommentar hat.
Dateien werden alphabetisch sortiert, ohne auf Gross-/Klein-Schreibung
zu achten. Ordner werden rot ausgegeben (ausser bei -c).
Dir beachtet die Breite des Fensters.
Die lformat-Zeichenkette wird verwendet, um ein eigenes Ausgabeformat
zu erstellen. Alles andere gilt nicht. Die Zeichenkette kann folgende
Zeichen enthalten:
%a Alter %l LF wenn Kommentar %s Grösse
%b Block-Grösse %m Multi-Kolonne %t Zeit
%c c-Bit (Komment.) %n Name %u Grösse in K
%d Datum %o Kommentar %v Ord. Grö. in engl.
%f hsparwed Bits %p Name mit Pfad %w Ord. Grö. in Kb
%i d-Bit f. Ord. %q Name mit '/' %x Übersetztes Datum
%k Klasse (Art) %r Grösse in engl.
Zwischen dem '%' und dem bezeichnenden Buchstaben kann auf Wunsch
eine Feld-Weite angegeben werden. Wenn die Zahl von einem '-'
angeführt wird, so wird der Feld-Inhalt linksbündig gesetzt. Bei
einem Punkt wird der Inhalt bei Bedarf auf die Feld-Weite gekürzt.
Wenn die Format-Zeichenkette ein %m enthält, wird Cshell versuchen,
mehr als einen Eintrag auf einer Zeile auszugeben. Die Kolonnenbreite
ist die Feld-Weite des %m-Eintrages. Wenn dieser fehlt, wird die
Breite der ersten Datei angenommen. Wenn eine Datei länger ist,
werden zwei Kolonnen verwendet.
DISKCHANGE
Gebrauch : diskchange Gerät
Beispiel: diskchange df2: # das externe 5.25" LW wurde
gewechselt
Wie AmigaDOS diskchange. Sollte nur bei physikalisches Geräten
angewendet werden.
ECHO
Gebrauch : echo [-en] Zeichenfolge
Beispiel : echo hi there
Ergebnis : hi there
Gibt die gegebene Zeichenfolge wieder. Wenn '-n' angegeben wurde, wird
kein Wagenrücklauf angefügt. Mit '-e' geht die Ausgabe auf die
Standardausgabe.
ELSE
Gebrauch : else ; Kommando
Beispiel : if -f fasel.c ; else ; echo "Nicht da" ; endif
Die Else-Anweisung muss von einer IF-Bedingung angeführt werden.
ENDIF
Gebrauch : endif
Das Ende einer If-Anweisung.
Achtung, wenn von einer Stapeldatei mit unterminierten IF-
Anweisungen zurückgekehrt wird, und das letzte IF falsch war,wird der
Prompt in einen Unterstrich ('_') verwandelt, und keine Anweisungen
werden ausgeführt bis 'endif' eingegeben wird.
ERROR
Gebrauch : error n
Generiert einen Rückgabewert (Fehlerkode) n.
EXEC
Gebrauch : exec [-i] Kommando [Argumente]
Beispiel : set cmd "dir ram:"
exec $cmd # würde ohne exec nicht funktionieren
Führt das angegebene Kommando aus. 'exec Kommando' ist gleichbedeutend
zu 'Kommando', nur können Variablen angegeben werden, um Kommandonamen
anzugeben.
Achtung, die Kommandozeile wird ZWEIMAL interpretiert! Beispiele:
set a dir ram:; exec $a # richtig
set a mkdir; exec $a "Mein Ordner" # falsch! Macht 2 Ordner.
Exec gibt den Wert zurück, den das auzuführende Kommando zurückgibt,
es sei denn die Option '-i' (ignorieren) ist gesetzt, was immer 0
ergibt.
FAULT
Gebrauch : fault Fehler1 .. FehlerN
Beispiel : fault 205 212
Wie AmigaDOS fault, gibt angegebene Fehlermeldungen zurück.
FILENOTE
Gebrauch : filenote Datei1 .. DateiN Kommentar
filenote -s Datei1...DateiN
Die erste Form setzt die AmigaDOS-Kommentarzeile der genannten Datei.
Die zweite Form zeigt die Kommentare der genannten Dateien an.
FLIST
Gebrauch : flist
Listet die Dateinummern der Dateien, die durch open geöffnet wurden.
Siehe OPEN und CLOSE.
FLTLOWER
Gebrauch : fltlower
Beispiel : dir | fltlower
Oder : fltlower <readme
Filterbefehl. Wandelt alphanumerische Texte in Kleinschrift.
FLTUPPER
Das gleiche wie fltlower, nur dieses wandelt in Grossschrift.
FOREACH
Gebrauch : foreach [-v] VarName ( Zeichenkette ) Kommando
Beispiel : foreach i ( a b c d ) "echo -n $i;echo \" ok. \""
Ergebnis : a ok.
b ok.
c ok.
d ok.
Die Zeichenkette wird in Argumente aufgeteilt. Jedes Argument wird der
Reihe nach der Variablen 'VarName' zugewiesen und 'Kommando' wird aus-
geführt. Mehrere Kommandos sollen in Anführungszeichen gesetzt werden.
Foreach ist sehr nützlich für die Interpretation von Argumenten in
einem Alias.
Beispiel:
alias showme "foreach i ( *.pic ) viewilbm $i"
Unter der Annahme, dass sich a.pic und b.pic im aktuellen Ordner
befinden, wird folgendes passieren:
viewilbm a.pic
viewilbm b.pic
Das Flag -v sorgt dafür, dass die Argumente angezeigt werden, wann
immer ein Kommando ausgeführt wird. Alle 'for...'-Befehle können mit
CTRL-D abgebrochen werden.
FOREVER
Gebrauch : forever Kommando
oder : forever "Kommando1;...;KommandoN"
Die angegebenen Befehle werden immer und immer wieder ausgeführt. Für
immer. Die Ausführung stoppt, wird CTRL-C oder CTRL-D gedrückt, oder
wenn die Kommandos einen Fehler liefern.
FORLINE
Gebrauch : forline Variable Dateiname Kommando
oder : forline Variable Dateiname "Kommando1;...;KommandoN"
Beispiel : forline i RAM:temp "echo line $_linenum=$i"
Für jede ASCII-Zeile, angegebener Dateien, werden die angeführten
Befehle ausgeführt und Variable zeigt auf Zeileninhalt. Die System-
Variable _linenum kann überprüft werden, um die Nummer der gerade
gelesenen Zeile zu finden.
Wenn die Standard-Eingabe (STDIN, Grossschreibung beachten) als
Eingabe angegeben wird, dann werden die Zeilen von der
Standard-Eingabe gelesen, also Tastatur oder Pipe.
FORNUM
Gebrauch : fornum [-v] Variable n1 n2 Kommando
oder : fornum [-v] -s Var n1 n2 SchrittWeite Kommando
Beispiel : fornum -v x 1 10 echo $x
oder : fornum -s x 10 1 -1 echo $x # zählt rückwärts
Führt Kommando für jeden numerischen Wert von x zwischen n1 und n2 aus.
Wenn mehr als ein Kommando angeführt ist, oder umgeleitet wurde, dann
Befehle in Anführungszeichen setzen.
Mit Option '-v' werden die laufenden Zahlen ausgegeben.
Mit Option '-s' kann eine Schrittweite angegeben werden, wenn diese
negativ ist, wird rückwärts gezählt.
GETENV
Gebrauch : getenv [Shellvar] envvar
Holt den Wert einer ARP- oder ENV:-Variablen (ARP-Liste wird zuerst
durchsucht) und speichert ihn in der Shell-Variablen 'shellvar' ab.
Wenn Shellvar ausgelassen wird, wird der Wert der ENV:-Variablen auf
der Standard-Ausgabe ausgegeben.
GOTO
Gebrauch : goto label
Beispiel : label start
echo "Am Start"
dir ram:
goto start
Fahre bei der angegebenen Marke (label) weiter. Dieses Kommando
kann nur in einer Stapeldatei verwendet werden. Die Sprungmarken
können sich vor oder nach dem GOTO Kommando befinden. Es
ist auch erlaubt aus IF's rauszuspringen.
HEAD
Gebrauch : head Dateiname [Wert]
Beispiel : head readme 20
Zeige "Wert" erste Zeilen der Datei "Dateiname". Wenn "Wert" nicht
angegeben wurde, werden die ersten 10 Zeilen angezeigt.
Meist interessant in Verbindung mit Pipe.
HELP
Gebrauch : help
Beispiel : help
Zeigt die Liste aller Befehle (KEIN Argument). Die Befehlsliste
wird in der Reihenfolge angezeigt, in welcher sie auch durchsucht
wird. Das hat zur Folge, daß, wenn nur ein Teil eines Kommandonamens
eingegeben wird, das erste Kommando in der Liste, der mit diesem
Teil beginnt, ausgeführt wird. Grundsätzlich sollte ein genügend
grosser Teil angegeben werden damit die Wahl eindeutig ist.
HISTORY
Gebrauch : history [Zeichenkette]
Beispiel : history
Zeigt eine mit Nummern versehene Liste der zuletzt eingegebenen
Befehle. Die Grösse dieser Liste kann durch die Variable _history
eingestellt werden. Wenn eine 'Zeichenkette' angegeben wurde, werden
nur diejenigen Einträge angezeigt, auf die diese Zeichenkette
zutrifft.
HOWMANY
Gebrauch : howmany
Dieses Kommando zeigt an, wieviele Shells momentan im System am
laufen sind.
HTYPE
Gebrauch : htype [-r] Datei1 .. Datein
Zeigt den Inhalt der angegegbenen Dateien im Hexadezimal
(sedesimal) und ASCII Format an (entspricht dem Ergebnis des
CLI Befehls "Type Datei opt h"). Speziell nützlich zum
Anschauen von Binärdateien. Die Option '-r' zeigt alle Dateien
in einem Ordner an.
IF
Gebrauch : if [-n] Argument Bedingung Argument ;
oder : if [-n] Argument
oder : if [-n] -f Datei
oder : if [-n] -d Datei/Ordner
oder : if [-n] -m
oder : if [-n] -t Datei Datei1 .. DateiN
oder : if [-n] -r RPN-Ausdruck
oder : if [-n] -v varname
oder : if [-n] -o Zeichen arg ... arg
Testet, ob ein Argument eine Bedingung in Bezug auf ein zweites
Argument erfüllt. Als Bedingungen sind zugelassen:
<, >, =, und Kombinationen.
Demzufolge bedeutet <> "ungleich", >= "grösser oder gleich",
und so weiter...
Wenn die Argumente nicht numerische Argumente sind, werden sie als
Zeichenkette verglichen.
Normalerweise wird als Argument entweder eine Konstante oder eine
Variable ($varname) verwendet.
Die zweite Form testet auf Vorhandensein des Arguments. Wenn das
Argument eine Leerzeichenkette "" ist, ist die Bedingung FALSCH, sonst
WAHR.
Die dritte Form mit der Option -f testet auf Existieren der
angegebenen Datei.
Option -d testet die Art des angegebenen Objekts: Wenn es sich um
einen Ordner handelt, ist die Bedingung WAHR, wenn es eine Datei
ist oder nicht vorhanden, ist die Bedingung FALSCH.
Option -m kann verwendet werden, um das Vorhandensein von
FAST-Memory zu prüfen.
Beispiel (kann im login.sh Datei eingebaut werden):
if -m; resident -d lc1 lc2 blink; endif
Wird die Form -t verwendet, werden Datum und Zeit der ersten Datei
mit allen anderen verglichen; wenn die erste Datei jünger als alle
anderen, ist die Bedingung FALSCH, sonst WAHR. Wenn
eine Datei nicht existiert, wird sie als älter angenommen.
Diese Option ist speziell nützlich um 'makefiles' ohne ein
eigentliches 'MAKE' Programm zu erstellen.
Beispiel:
if -t test.o test.asm test.i ; asm -o test.o test.asm ; endif
Die Option -r berechnet einen gegebenen RPN-Ausdruck (siehe RPN
für genauere Erläuterung): Wenn der Wert zuoberst auf dem RPN
Stapel 0 ist, gilt die Bedingung als FALSCH, sonst WAHR.
Die Option -o testet auf eine Option 'Zeichen' im Rest des
Arguments.
Beispiel: if -o r -rp ram:comm1.c ergibt WAHR.
Option -n kehrt das Ergebnis der Bedingung um.
Um zu testen, ob eine bestimmte Variable definiert wurde, kann
'if -v varname' verwendet werden.
Wenn das Kommando IF in der Kommandozeile verwendet wird und die
Bedingung FALSCH war, wird als Prompt solange ein '_' verwendet
und alle eingegebenen Befehle ignoriert, bis ein ELSE oder ENDIF
Kommando ausgeführt wird.
INC
Gebrauch : inc VarName [Wert]
Beispiel : set abc 5;inc abc 5;echo $abc
Ergebnis : 10
Erhöht den Inhalt einer Variable um den angegebenen Wert (Wenn
nichts angegeben wurde: um 1) und schreibt das Resultat als
ASCII-Zeichenkette zurück in die Variable 'VarName'.
INFO
Gebrauch : info [Path1 ... PathN]
Wenn INFO ohne Argumente aufgerufen wird, gibt es Information
über alle logischen und physikalischen Geräte (devices) aus.
Werden ein oder mehrere Pfade angegeben, wird nur die Information
über die dazugehörigen Geräte angezeigt.
INPUT
Gebrauch : input [-s] Var1 ... VarN
Beispiel : input abc
Schreibt Daten von der Standard-Eingabe (oder einer umgeleiteten
Ausgabe, oder von einer Pipe) in eine Variable. Die nächste Zeile,
die als Eingabe kommt, wird in Worte aufgeteilt (wenn sie nicht in
Anführungszeichen gesetzt wurde) und in die Variable geschrieben.
Falls die Option -s eingeschalten wurde, wird die Eingabezeile als
Ganzes genommen, mitsamt der Leerzeichen. Option -r schaltet die
Eingabekonsole in der Einzelzeichenmodus bevor die Daten
eingelesen werden (d.h. es wird nicht auf ein abschliessendes
RETURN gewartet). Diese Option muss mit Vorsicht eingesetzt
werden.
JOIN
Gebrauch : join [-r] Datei1..DateiN Zieldatei
Beispiel : join teil1 teil2 teil3 TeilGanz
Verbindet die angegebenen Dateien und erzeugt 'Zieldatei'. Wenn
'Zieldatei' schon existiert, wird eine Fehlermeldung angezeigt und
das Kommando wird abgebrochen, es sei denn Option -r (ersetze =
replace) wurde angegeben.
KEYMAP
Gebrauch : keymap nummer {taste=funktion}
Beispiel : keymap 0 1030=4 1032=12
Definiert eine Tastenbelegung für Editiermodus der Csh
Kommandozeile. Siehe auch Kapitel XV.
LABEL
Gebrauch : label name
Setzt eine Sprungmarke an dieser Stelle. Wird in Stapeldateien
verwendet, dann kann mit GOTO zu einer solchen Marke gesprungen
werden.
LINECNT
Ein Filter das die Anzahl der Zeilen zählt, die es als Eingabe
(Standard-Eingabe) erhält und schreibt diese Anzahl dann auf die
Standard-Ausgabe.
LOCAL
Gebrauch : local [Var1 ... VarN]
Generiert eine oder mehrere lokale Variablen. Diese Variablen
verschwinden am Ende des 'alias' oder der Stapeldatei und können
nicht von anderen 'alias' oder Stapeldateien angesprochen werden.
Wird kein Argument angegeben, zeigt das Kommando alle lokalen
Variablen und deren Inhalt an.
LS
Gleichbedeutend zum Kommando DIR.
MD
Gleichbedeutend zum Kommando MKDIR.
MAN
Gebrauch : man Kommando1 ... KommandoN
Beispiel : man mkdir
Zeigt Information über ein Shell Kommando oder andere
Schlüsselwörter an. Dies beinhaltet insbesondere alle speziellen
_variablen, sowie verschiedene Schlüsselwörter: SUCHMUSTER, PIPES,
EDITIEREN, START und andere.
Das spezielle Alias 'manlist' kann verwendet werden, um eine Liste
ALLER Schlüsselwörter zu erhalten, die MAN unterstützt.
Die Variable _man muss auf den Pfad der .doc Datei gesetzt werden:
set _man dh1:docs/aliases.doc Csh:Csh.deutsch.doc
Um eigene .doc Dateien zu erstellen, müssen vor alle Schüsselwörter
vier (4) Leerzeichen gestellt werden. 'man' zeigt dann alle Zeilen
bis es auf eine Zeile trifft, deren erste Zeichen ein alpha-
numerisches ist oder vier vorangestellte Leerzeichen sind.
MEM
Gebrauch : mem [-cfqu]
Optionen:
-c zeigt den freien Speicher im CHIP-Memory Bereich
-f zeigt den freien Speicher im FAST-Memory Bereich
-q gibt nur die Zahl des freien Speichers ohne Text aus
-s merkt sich die Menge des momentan freien Speichers
-r zeigt den freien Speicher relativ zum letzten gemerkten Zustand.
-l räumt den Speicher auf, macht soviel Speicher wie möglich frei.
MENU
Gebrauch : menu [-n] [ Titel Menupunkt1 ... MenupunktN ]
Beispiel : menu Shell JrComm,,j Rename,"rename ",r quit
Hängt ein zusätzliches Pulldownmenu an das aktive Shell Fenster.
Bis zu sechs Menus mit je 16 Menupunkten können installiert
werden.
Wenn als 'Menupunkt' nur eine Zeichenkette angegeben wurde, wird ein
Menupunkt mit demselben Namen erstellt. Bei der Anwahl eines
solchen Menupunktes wird diese Zeichenkette dann beim Prompt eingefügt
und ausgeführt.
Wenn ein Komma mit einer nachfolgenden zweiten Zeichenkette angegeben
wurde, wird diese zweite Zeichenkette als Kommando eingefügt und
ausgeführt. Bei dieser Variante muss ein ^M (RETURN) von Hand
hinzugefügt werden, falls das Kommando direkt ausgeführt werden
soll.
Wenn auch noch ein zweites Komma mit einem nachfolgenden
Zeichen folgt, wird dieser als Tastenkombination für den
Menupunkt genommen. (In Zukunft wird Gross-/Kleinschreibung eine
Rolle spielen, deshalb muss Kleinschrift verwendet werden!)
Wenn aus irgend einem Grund das Pulldownmenu kaputtgegangen ist,
kann einfach ein 'menu' Kommando alleine ausgeführt werden.
Option -n entfernt alle Menupunkte.
Als Beispiel ist Csh:menu.sh anzusehen.
MKDIR
Gebrauch : mkdir Name Name Name...
Beispiel : mkdir df0:stoff
Erstellt einen neueen Ordner.
MV
Gleichbedeutend zum Kommando RENAME.
Es ist nicht möglich über Geräte hinweg Dateien zu bewegen, etwa
von einer Partition auf eine andere. Ein solches Kommando kann
mit einem Alias einfach simuliert werden
(ohne Sicherheitsabfrage!):
alias newmv "%f1%f2 copy $f1 $f2;rm $f1"
OPEN
Gebrauch : open Dateiname Dateimodus Dateinummer
Beispiel : open RAM:data w 1
Dieses Kommando erlaubt das Öffnen einer Datei, ein darauf folgendes
Umleiten beliebig vieler Befehle in diese Datei und ein Schliessen
der Datei zum Schluss.
'Dateiname' ist ein gültiger AmigaDOS Dateiname, als 'Dateimodus'
sind entweder "r" zum Lesen oder "w" zum Schreiben erlaubt,
'Dateinummer' muss eine Zahl zwischen 1 und 10 sein.
Um ein Programm von oder zu einer geöffneten Datei umzulenken, wird
als Umleitungsdateiname ein Punkt '.' gefolgt von der 'Dateinummer'
verwendet. Es sind nur 10 gleichzeitig geöffnete Dateien zulässig.
Dazu ein komplettes Beispiel:
open RAM:data w 1
echo -n 2+2= >.1
rpn 2 2 + . CR >.1
close 1
type RAM:data # zeigt 2+2=4
Siehe auch CLOSE, FLIST.
PATH
Gebrauch : path [-r] [Ordner1 ... OrdnerN]
Ohne ein Argument gibt das Kommando die Liste aller AmigaDOS Pfade
aus. Sonst wird 'Ordner' zum Pfad hinzugefügt, wobei
Doppeleintragungen vermieden werden.
Die Option '-r' löscht die gesamte (vorhandene) Pfadliste.
PRI
Gebrauch : pri Clinummer Pri
Beispiel : pri 3 5 # Setzt Priorität von cli #3 auf 5
Ändert die Priorität des angegebenen Tasks (Das PS Kommando kann
dazu verwendet werden, die 'Clinummer' herauszufinden). Wenn als
'Clinummer' 0 angegeben wurde, wird die Priorität des aktuellen
Tasks (derjenige, der das Kommando ausführt) verändert. Dies ist
sinnvoll für Stapeldateien.
PROTECT
Gebrauch : protect Datei1 ... DateiN [modus] flags
Beispiel : protect MeineDatei +rwe
Setzt AMIGADOS Sicherheits-Bits für die angegebenen Dateien.
Mögliche Bits sind: h, s, p, a, r, w, e, d.
(Siehe auch AmigaDOS Manual)
Modus:
+ Setzt die angegebenen Flags (alle anderen bleiben)
- Löscht die angegebenen Flags (alle anderen bleiben)
= Setzt die angegebenen Flags (alle anderen werden gelöscht)
Wenn kein Modus angegeben wird, wird '=' als Vorgabe-Modus angenommen.
Das Archiv-Flag (a), wird jeweils, sofern nichts anderes angegeben
wurde, gelöscht.
PS
Gebrauch : ps [Kommandoname1 ... KommandonameN]
Gibt einen Status über alle CLI Processe z.B:
Proc Command Name CLI Type Pri. Address Directory
* 1 Csh Initial CLI 0 97b0 Stuff:shell
2 clock Background -10 2101a8 Workdisk:
3 emacs Background 0 212f58 Stuff:shell
4 VT100 Background 0 227328 Workdisk:
Address ist die Speicheradresse des Tasks, Ordner ist der aktuelle
Ordner des jeweiligen Commands (Kommandos). Der aktuelle
CLI wird mit einem Stern in der ersten Spalte markiert.
Optionen:
-l Zeigt den kompletten Pfad der Kommandos
-e Entfernt das Argument aus der Task-Liste (Wird übersprungen)
PWD
Gebrauch : pwd
Setzt die Variable _cwd auf den aktuellen Pfad und zeigt diesen
an.
QSORT
Gebrauch : qsort [-r] <Eingabe >Ausgabe
Dieses Filter sortiert die 'Eingabe' nach 'Ausgabe'.
Die Option -r sortiert rückwärts.
QUIT
Gebrauch : quit
Verlässt die Shell. Achtung, wurde die Csh von der normalen
AmigaShell in shell-startup gestartet, werden jetzt erst die nach
'Csh' folgenden Befehle gestartet.
RBACK
Gebrauch : rback Kommando
Startet ein Kommando in einem Hintergrund-Process. Ausgaben werden
NICHT sichtbar. Abfragen des Kommandos, können nicht entgegengenommen
werden. rback entspricht 'run command >NIL: <NIL:'. Anstatt rback,
ist es möglich am Ende der Zeile ein '&' anfügen. Die Variable
$_newproc enthält die CLINummer des neu gestarteten Processes.
Achtung, rback kann keine internen Csh-Kommandos starten.
Soll eine Unter-Shell gestartet werden, ist dies z.B. wie
folgt zu geschehen : rback Csh -c "copy ram:temp prt:;rm ram:temp
READFILE
Gebrauch : readfile Variablenname [Dateiname]
Lädt eine ASCII Datei und weist den Inhalt einer Variable zu.
Jede Zeile wird zu einem Wort in der sich ergebenden Zeichenkette.
Wenn keine Datei angegeben wird, wird von der Standard Eingabe
gelesen.
RENAME
Gebrauch : rename QuellDatei ZielDatei
oder : rename Datei1 ... DateiN ZielOrdner
Ermöglicht es, eine Datei umzubennen oder solche auf dem gleichen
Gerät zu bewegen. Eine oder mehrere Dateien können in einen einzelnen
Ordner verschoben werden.
Das Archivierungs-Bit (a), wird bei diesem Vorgang gelöscht.
Suchmuster sollten aus Sicherheitsgründen vermieden werden.
RESIDENT
Gebrauch : resident [-r][-d] [Datei]
Beispiel : resident lc1 lc2 blink # Lädt diese Dateien resident
resident -d lc1 lc2 blink # Lädt erst resident,wenn nötig
resident -r lc1 lc2 blink # Löscht residente Dateien
resident # Listet residente Dateien
Dies ist das ARP Resident Kommando. Kommandos werden von der Shell
zuerst dort gesucht, bevor in externen Geräten gesucht wird.
Nur wirkliche Programme können resident geladen werden. Bei weiteren
Fragen zu resident, ist bitte das ARP Handbuch zu lesen.
Option -d ist sehr praktisch: So kann in der Start-Datei
folgenden Eintrag gemacht werden:
resident -d Datei1 .. DateiN
Die Programme werden nicht sofort geladen, sondern nur wenn
sie tatsächlich gestartet werden. Dies ist ein einfacher Weg,
den Speicherverbrauch und die Start-Zeit zu Verkürzen.
Die alte Option -a hat keine weitere Bedeutung mehr.
RETURN
Gebrauch : return [n]
Beispiel : return 10
Die Shell, oder eine Stapeldatei wird mit dem angegebenen Wert
als Fehlerkode verlassen.
RM
Synonym zu delete
RPN
Gebrauch : rpn Ausdruck
Beispiel : rpn 3 7 * # Erigibt eine Ausgabe von 21
Berechnet einen RPN (revers polish notation, siehe Fachliteratur)
Ausdruck, dabei werden 32-Bit Variabeln verwendet.
Nach der Berechung, schreibt RPN den Wert auf den Stack.
Beispiel: "rpn $x 2 * | input x" Die Variable x hier verdoppelt.
Implementierte Funktionen:
+ - * / Triviale Ausdrücke; / ist eine integere Division.
% Modulo Operation z.B. "rpn 7 3 %" Ergibt 1
& | ~ Bitweise UND, ODER, NOT Operatoren
> < == Testet auf grösser-als, kleiner-als, gleich. Auch <=
und >= sind erlaubt.
! Logische NICHT Operation
DUP Dupliziert Wert auf dem Stacks
DROP Löscht obersten Wert des Stacks
SWAP Tauscht Wert mit dem obersten auf dem Stack aus.
Um keinen Konflikt mit den Ausgabeumlenkungs-Zeichen, > und < zu
bekommen, müssen die Operatoren in diesem Fall zwischen
Anführungszeichen "" stehen.
3 2 ">" # Ergibt 1, dies wird auf die Standardausgabe
# gelenkt
RUN
Gebrauch : run Programm Argumente
Beispiel : run emacs test.c
Startet das Programm unter einem neuen Process.
In der jetzigen Implementation des Kommandos run, kann die
Ausgabe und die Eingabe des Programm nicht umgelenkt werden.
Das Kommando ist nicht ganz zuverlässig: Gebrauch auf eigenes Risiko.
$_newproc wird auf den Wert der CLI-Nummer des neuen Processes gesetzt
Siehe auch rback
RXREC
Gebrauch : rxrec [portname]
Generiert einen AREXX-Port mit spezifizierten Namen.
Vorgabe ist "rexx_csh". Anschliessend geht die Shell in einen
Warte-Modus, in der sie auf Kommandos wartet.
Achtung, der einzige Weg diesen Status zu verlassen, besteht darin,
auf den angegebenen ARexx-Port die Mitteilung 'bye' zu senden.
Beispiel:
Eine weitere Cshell in einem neuen CLI öffnen.
Dort eingeben:
rxrec
Die Shell gibt nun keine Antwort auf Kommandos, denn diese
wartet auf ARexx-Mitteilungen (port "rexx_csh").
Auf der anderen Cshell bitte eingeben:
rxsend rexx_csh "dir ram:"
Es wird auf der neuen CShell der Inhalt des Ordners ram: ausgegeben.
Um die neue CShell wieder freizugeben, ist
rxsend rexx_csh bye
einzugeben.
Die neue CShell ist nun wieder im (normalen) Kommando-Modus
RXSEND
Gebrauch : rxsend [-lr] PortName Kommando1 ...KommandoN
Sendet Kommandos zu einem AREXX-Port.
Jedes Kommando wird als einzelnes Kommando gesendet!
Es werden keine Zusätze benötigt, um rxrec zu starten, nur
ein Programm mit dem richtigen AREXX-Port.
Ein Beispiel ist CygnusEdProfessional: Hier als Beispiel ein Kommando
das den CED wiederbelebt (falls im Wartemodus), eine Datei
namens test.c lädt, und ein Sprung zur Zeile 20 macht:
rxsend rexx_ced "cedtofront" "open test.c" "jmp to line 20"
# rexx_ced ist der Name des AREXX Port's für CygnusEd
Die Option -r setzt die Variable _result auf den Rückgabe-Wert des
ausgeführten AREXX Kommandos.
Die Option -l sendet die ganze Zeile als EIN Kommando
Mehr Details sind dem jeweiligen Applikations-Handbuch zu entnehmen.
SEARCH
Gebrauch : search [-abcefnqrvw] Datei1 ... DateiN Zeichenkette
Durchsucht die angegebenen Dateien nach einer Zeichenkette.
Nur jeweils eine Zeile, in der die Zeichenkette gefunden worden ist,
wird angezeigt.
Fals als Dateiname STDIN (Grossbuchstaben) angegeben wird, wird von
der Standard-Eingabe gelesen. Somit kann mit Hilfe von PIPE's
ein Datenstrom durchsucht werden.
Beispiel:
strings MeinProgramm | search STDIN .library
Zeigt alle Libraries die in "MeinProgramm" verwendet werden.
Search ist sehr schnell. Wenn keine der Optionen -w, -e und STDIN
angegeben wurden wird die Datei in den Speicher geladen.
Optionen:
-a (abort, Abbruch) Die Ausgabe wird angehalten, beim ersten Vorkommen
des Suchmusters.
-b (Binary, binär) Zeigt den Byte-Offset der gefundenen Zeichenkette
In Kombination mit -n, werden nur Offset's Angezeigt.
-c (case, Gr./Kl.) Es wird strikt abhängig von Gross/Kleinbuchstaben
durchsucht.
-e (Exklusiv) Zeigt Zeilen in denen die Zeichenkette NICHT vorkommt
-f (files, Dateien) Zeigt nur den Namen der Dateien in dem die
Zeichenkette gefunden wurde.
-l (left, Links) Das Suchmuster beginnt am Anfang einer Zeile (dies
ist schneller als Suchmuster zu nutzen)
-n (number, Nummer) Schaltet die Zeilen-Nummerierung ab.
-o (only, nur) Sucht nur ganze Wörter.
-q (quiet, still) Unterdrückt das Ausgeben der Dateinamen.
-r (Rekursiv) Wenn ein Ordner angegeben wird, werden alle
Dateien und Ordner rekursiv durchsucht.
-v (verbose, Kommentar) Zeigt jeden Dateinamen auf einer separaten
Zeile. Dies wird automatisch eingeschaltet, wenn der search
umgeleitet wurde.
-w (wild card, Suchmuster) Siehe Unten.
Bemerkungen zu Suchmustern:
- Benutzt Shell-Standardmuster.
- Alle Standard ARP Suchzeichen sind verwendbar: * ? [] () | ~ ' #
- Die ganze Zeile muss eine Such-Zeichenkette ergeben.
- Die Zeichenkette muss zwischen Anführungszeichen stehen! (!!)
Beispiel:
search -cr df0:include ACCESS
Findet alle Vorkommen von ACCESS (gross geschrieben)in allen Dateien
im df0:include Ordner.
search -w shell.h "'#define*"
Zeigt nur Zeilen einer Datei in der der Anfang mit #define
beginnt. Das Zeichen ' muss vor # stehen, da # ein Spezial-
Zeichen ist.
SET
Gebrauch : set [VarName] [Zeichenkette]
Beispiel : set abc hallo
Set ohne Argumente gibt Liste aller aktuellen Variablen und deren
Inhalt aus.
Set mit einem Argument zeigt den Inhalt der angegebenen Variable.
Wird ein Name und eine Zeichenkette angegeben, so wird die
Zeichenkette in der spezifizierten Variablen gespeichert.
Siehe auch Abschnitt für spezielle _variablen.
SETENV
Gebrauch : setenv UmgVar Wert
Setzt eine ENV: (Environment, Umgebung) Variable auf angebenen Wert.
Der Wert muss in Anführungszeichen gesetzt werden, enthält er
Leerzeichen.
SLEEP
Gebrauch : sleep Zeitwert
Beispiel : sleep 10
Für 'Zeitwert' - Sekunden warten, oder aber solange bis ^C gedrückt
wird.
SPLIT
Gebrauch : split QuellVar ZielVar1 ... ZielVarN
Weist ein Wort in QuellVar jedem ZielVar zu, den Rest von QuellVar
an das letzte Zielvar.
Achtung, Variablen-NAMEN angeben, nicht Variablen.
STACK
Gebrauch : stack [Wert]
Beispiel : stack 8000
Ändert den Standard Stack für den benutzten CLI. Ohne Parameter
wird die aktuelle Stackgrösse ausgegeben.
Jedes Programm benutzt eine gewisse Menge des Stacks. Ein Stack
ist ein Speicherraum, in dem z.B. Variablen gespeichert werden können.
Der nötige Verbrauch ist der jeweiligen Applikationsbeschreibung
zu entnehmen.
Ein normaler Stack bewegt sich zwischen 4000 und 25000 Bytes.
Die Shell selber braucht ca. 8000 Bytes Stack für Variablen,
diverse Speicheroperationen und PIPES.
STRHEAD
Gebrauch : strhead VarName MarkierZeichenkette
Beispiel : strhead x . blafasel.bas # Setzt x auf "blafasel"
Löscht alles ab dem MarkierZeichen in der 'Zeichenkette' und
weist das Ergebnis der Variablen 'VarName' zu.
STRINGS
Gebrauch : strings Datei1..DateiN MinLänge
Beispiel : strings c:dir c:list shell 7
Gibt alle Zeichenketten die in den angegebenen Dateien (normalerweise
binär) vorkommen aus, die mindestens die Länge MinLänge haben.
STRLEFT
Gebrauch : strleft VarName Zeichenkette n
Beispiel : strleft x LangZeichenkette 5 # Setzt x auf "LangZ"
Weist die linken n Zeichen einer Zeichenkette der Variablen
VarName zu.
STRLEN
Gebrauch : strlen VarName Zeichenkette
Beispiel : strlen x Hallo # setzt x auf "5"
Weist die Länge einer Zeichenkette einer Variablen VarName zu.
STRMID
Gebrauch : strmid VarName Zeichenkette n1 [n2]
Beispiel : strmid x LangZeichenkette 5 3 # setzt x auf "Zei"
Nimmt n2 Zeichen der Zeichenkette, ab der Stelle n1, und weist sie
der Variablen VarName zu. Wird n2 weggelassen, wird die ganze
Zeichenkette ab n1 zugewiesen.
STRRIGHT
Gebrauch : strright VarName Zeichenkette n
Beispiel : strright x LangZeichenkette 12 # setzt x auf "kette"
Weist die rechten n Zeichen einer Zeichenkette einer Variablen zu.
STRTAIL
Gebrauch : strtail VarName MarkierZeichen Zeichenkette
Beispiel : strtail x . blafasel.bas # setzt x auf "bas"
Löscht alles vor und inklusive des MarkierZeichen in der
Zeichenkette und weist das Ergenis der Varibalen VarName zu.
SOURCE
Gebrauch : source Datei [Argumente]
Beispiel : source mymake.sh all
Ergebnis : Die Stapeldatei 'mymake.sh' wird mit der gesetzten Variable
_passed = 'all' aufgerufen.
Führt Kommandos aus einer Stapeldatei aus. So können Kommandos in einer
Datei zusammengefasst werden, und diese dann mit dem Kommando 'source'
ausgeführt werden. Ge-Source'te Dateien haben den zusätzlichen
Vorteil, das diese Schleifen (siehe GOTO und LABEL) benutzen können.
An die SOURCE Dateien können Argumente übergeben werden, indem nach
dem Dateinamen diese spezifiziert werden. Argumente werden über die
_passed Variable weitergegeben (als einzelne Zeichenkette, Menge von
Wörtern).
Lange Zeilen können mit einem Backslash (\) am Ende der Zeile in
mehrere Zeilen aufgeteilt werden. Eine einzelne Zeile muss kürzer
sein als 512 Zeichen, aber die geteilten Zeilen können insgesamt
länger sein. Es gibt kein Limit für die Länge der zusammengesetzten
Zeile.
Automatisches 'sourcen' wird ausgeführt durch ein Anhängen eines
.sh Suffix an die Stapeldatei (nicht notwendig das s-Bit zu setzen),
und normales Aufrufen, so wie es mit einem echten Programm
geschehen würde:
--------- Datei hallo.sh ---------
foreach i ( $_passed ) "echo "Hi $i"
---------------------------------
$ hallo Emil Anton Bert
hallo Emil
hallo Anton
hallo Bert
Ist das letzte Zeichen einer Zeile in einer Stapeldatei ein '{',
dann werden alle folgenden Zeilen an die aktuelle Zeile angehängt
und durch Semikola gtrennt, solange bis das letzte Zeichen einer
Zeile ein '}' ist. Solche Blöcke können verschachtelt sein.
--------- Datei lang.sh ---------
alias komplex {
echo -n "dieses alias "
echo "funktioniert!"
}
---------------------------------
$ lang
$ komplex
dieses alias funktioniert!
TACKON
Gebrauch : tackon VarName Pfadname Dateiname
Beispiel : tackon x df0:c Dir # setzt x auf "df0:c/Dir"
oder : tackon x df0: Preferences # setzt x auf "df0:Preferences"
Hängt korrekte Dateinamen an einen Pfadnamen und weist das Ergebnis
der spezifizierten Variablen zu.
TAIL
Gebrauch : tail Dateiname [Anzahl]
Beispiel : tail readme 20
Zeigt die letzten "Anzahl" Zeilen der Datei "Dateiname" an. Wird
Anzahl nicht angegeben, so wird 10 angenommen.
TEE
Gebrauch : tee [Datei]
Beispiel : cc test.c | tee >error.list
# Compiliert test.c und kopiert Fehlermeldungen
# automatisch nach error.list
Kopiert die Standardeingabe (stdin) auf die Standardausgabe
(stdout) und die angegebene Datei. Wird die Datei nicht angegeben,
so wird die Standardfehlerausgabe (stderr) benutzt.
TOUCH
Gebrauch : touch Datei1 [.. DateiN]
Setzt den Datumsstempel der Datei auf aktuelle Zeit und Datum und
löscht das Archive-Bit.
TRUNCATE
Gebrauch : truncate [n]
Beispiel : alias | sort | truncate
Ein Filter welches die Breite der Standardeingabe (stdin) auf die
angegebene Breite festlegt, versucht ebenso tab und Escape-sequenzen
durchzulassen. Wird die Breite nicht angegeben, so wird die aktuelle
Fensterbreite benutzt.
TYPE
Synonym zu CAT.
UNALIAS
Gebrauch : unalias Name1 [.. NameN]
Beispiel : unalias vt
Löscht Aliase.
UNIQ
Gebrauch : uniq
Dieses Filter löscht alle fortlaufenden, mehrfach vorkommende Zeilen
in einer Datei, bzw der Standardeingabe. Ist besonders sinnvoll
für sortierte Dateien.
UNLOCAL
Gebrauch : unlocal Var1 [... VarN]
Löscht eine oder mehrere lokale Variablen.
UNSET
Gebrauch : unset Name1 [.. NameN]
Beispiel : unset abc
Setzt Variablen zurück. Löscht sie komplett.
USAGE
Gebrauch : usage [Kommando1 [.. KommandoN] ]
Wenn ohne Argumente aufgerufen, wird eine kurze Information über
spezielle, benutzte Kommando ausgegeben. Ansonsten wird die
Gebrauchsanleitung der befragten Kommandos ausgegeben. Wird ein
Kommando mit '?' als Parameter aufgerufen, so wird die
Gebrauchsanleitung ebenfalls ausgegeben.
VERSION
Gebrauch : version
Zeigt aktuelle Version der Shell, und die Autoren werden gelistet.
WAITFORPORT
Gebrauch : waitforport Portname [Sekunden]
Wartet auf Eingabe des Port 'Portname'. Wartezeit ist standarmässig
auf 10 Sekunden begrenzt.
WHEREIS
Gebrauch : whereis [-r] Dateiname [Gerät1 .. GerätN]
Beispiel : whereis -r List df0: dh0:
Wird nur der Dateiname angegeben, so durchsucht Whereis alle
Ordner im aktuellen Ordner nach diesem Datei. Ein Asterisk '*' wird
an den Dateinamen angehängt. Suchmuster sind erlaubt (dann wird
kein Asterisk mehr angehängt) für Dateinamen, nicht für
Pfadnamen. Werden zusätzliche Argumente übergeben, sucht Whereis
nur in diesen Pfaden, nicht im aktuellen Ordner.
Whereis -r durchsucht alle vorhandenen Geräte.
WINDOW
Gebrauch : window [-q][-f][-b][-l][-s] [Dimensionen]
Optionen :
-f (front, vorne) Window nach vorne holen
-b (back, hinten) Window nach hinten schieben
-l (large, gross) Window auf Maximum vergrössern
-s (small, klein) Window auf Minimum verkleinern
-a (activate, aktiviere) Window aktivieren
-q (query, abfrage) Zeigt alle geöffneten Windows und Screens
Viele Operationen für das CLI Window (Fenster). Werden Dimensionen
angegeben, so müssen sie in der Form x y Breite Höhe spezifiziert
werden (zwischen den Werten ein Leerzeichen).
Das Kommando "window -l" kann sinnvoll sein für PAL Maschinen, um ein
volles, auf PAL angepasstes Window zu erhalten, aus der login
Sequenz heraus z.B., oder aber wenn eine Overscan Workbench
genutzt wird.
Die Option "-q" zeigt die Window/Screen Dimensionen eines jeden
geöffneten Window und Screens an.
WRITEFILE
Gebrauch : writefile VarName
Schreibt ein Menge von Wörtern auf die Standardausgabe, ein
Wort pro Zeile. Achtung, der Name der Variablen (VarName)
soll übergeben werden, nicht der Inhalt ($VarName).
IX. SPEZIAL VARIABLEN
-------------------------
_abbrev
Auf 'n' gesetzt, können interne Befehle nicht mehr abgekürzt werden.
_bground
Ist wahr, wenn die Shell mit einer nicht-interaktiven Eingabe
gestartet wurde.
_clinumber
Enthält die aktuelle CLI Prozessnummer (1-20).
_cwd
Enthält die Zeichenkette, welche den aktuellen Ordner angibt, von
der Wurzel (:) ausgehend. Die SHELL kann mit ihrem aktuellen Ordner
durcheinanderkommen, wird durch ein externes Programm der Ordner
verändert. Dazu PWD benutzen, um die _cwd Variable in solchen Fällen
neu zu setzen.
_debug
Debug Modus. Muss auf einen Wert gesetzt sein.
_every
Enthält den Namen eines Befehls, der ausgeführt wird, bevor
das Prompt ausgegeben wird. Bitte nicht benutzen um das Prompt
selber auszugeben.
_except
Siehe EXCEPTION.
_hilite
Enthält die Zeichensatzattribute die benutzt werden, um Schrift
hervorzuheben. Ein Zeichen für ein Attribut:
b für Bold
i für Italic
u für Unterstrich
r für Negativ
c3 für Vordergrundfarbe 3
c3,2 für Vordergrundfarbe 3 und Hintergrundfarbe 2
Jede Kombination erlaubt. Die _hilite Standardvorgaben sind "c7",
im Terminalmodus "r".
_history
Diese Variable enthält einen numerischen Wert, und gibt an wie weit
im Kommandospeicher zurückgesehen werden soll. Auf 0 zu setzen, soll
der Kommandospeicher abgeschaltet werden, um z.B. festzustellen
ob Ihr Programm Speicher nicht freigibt. Ist standardmässig auf 50
gesetzt.
_insert
Setzt den Standardwert für den Einfüge/Überschreib Modus für
den Kommandozeileneditor. ESI-i schaltet zwischen beiden Modi, aber
nach einem <RETURN> wird wieder auf einen hier angegebenen Standard-
wert zurückgesetzt. Standardmässig ist _insert auf 1 gesetzt,
wird _insert gelöscht, so wird der Überschreibmodus Standardwert.
_ioerr
Enthält den zweiten Fehler Kode des letzten Befehls. Wird nach jedem
externen Kommando geändert, ebenso nach einem fehlerhaft ausgeführten
internen Kommando. Siehe auch @ioerr().
_kick2x
Ist wahr, wenn dos.library V36 geöffnet werden konnte, was bedeutet,
das Kickstart release 2 existiert.
_lasterr
Rückgabewert des zuletzt ausgeführten Befehls. Dies beinhält
interne Befehle und externe Befehle, um also diese Variable zu nutzen,
muss sie DIREKT nach Aufruf des zu befragenden Befehls
abgefragt werden.
_lcd
Enthält den Namen des zuletzt benutzten Ordners. Das eingebaute Alias
'dswap' wechselt in diesen Ordner. Erneut aufgerufen ist wieder
der Ordner aktuell, der am Anfang aktiv war.
_man
Enthält den Pfad und den Namen ihrer .doc Dateien. Standardwert
ist 'Csh:Csh.doc'.
_maxerr
Enthält den bislang schlechtesten (höchsten) Rückgabewert. Um dies
nutzen zu können, den Wert normalerweise auf '0' setzen, dann
ein paar Befehle ausführen, und erneut hier nachsehen.
_minrows
Enthält die minimale Anzahl Zeilen, die ein Window haben muss,
damit das 'quick scrolling' eingeschaltet wird.
_nobreak
Schaltet CTRL-C ab wenn auf '1' gesetzt.
_passed
Diese Variable enthält die Argumente, die einem BatchDatei überge-
ben werden, wenn es mit 'source' gestartet wird. Beispiel:
test a b c d
-------- Datei test.sh ----------
echo $_passed
foreach i ( $_passed ) "echo YO $i"
--------------------------------
_path
Gibt die Ordner an, in denen Csh nach ausführbaren Programmen
suchen soll. Der aktuelle Ordner und der AmigaDOS Pfad werden
zuerst durchsucht. Dieser Pfad wird zuerst nach dem Kommando,
dann nach Kommando.sh (Stapeldatei) durchsucht.
Beispiel: set _path ram:c,ram:,sys:system,dh1:tools,df0:c
_prompt
Diese Variable enthält die Zeichen, die als Eingabeaufforderung
ausgegeben werden. Diese kann folgende Kontrollzeichen enthalten:
%c (color, Farbe) macht das Prompt farbig. Siehe _hilite
%m (memory, Sepicher) gibt freien Speicher in Kb an
%d (date, Datum) aktuelles Datum
%t (time, Zeit) aktuelle Zeit
%p (path, Pfad) aktueller Pfad
%n (number, Nummer) eigene CLI-Nummer
%v (version, Version) benutzte Csh-Version
%h (history, K-Speicher) momentane Kommandospeicher-Nummer
%f (free, Frei) freier Platz auf dem aktuellen Drive
%r (pRiority, Priorität) eigene Task-Priorität
%s (shells, Shell) Anzahl der offenen Csh's
Voreingestellt ist "%c%p> "
Wenn vergessen wurde, ein 'if' Kommando mit 'endif' abzuschliessen,
wird das Prompt zu '_ '
_pipe
Der Ordner für Temporärdateien. Voreingestellt: 'T:'
_qcd
Enthält den Namen der Datei, die alle Ordner aller vorhandenen
Geräte enthält. Falls nicht gesetzt, wird das 'quick-cd'
abgeschaltet.
_rback
Der Name des Kommandos, das vor die Kommandozeile gehängt wird,
falls der User ein '&' angehängt hat. Normalerweise 'rback'.
_rxpath
Wie _path, aber hier sucht Csh nach .rexx Dateien. Normalerweise
'REXX:'
_scroll
Anzahl der Zeilen, die das Window auf einmal scrollen soll, falls
$_minrows überschritten ist.
_terminal
Sagt aus, ob die Csh im Terminal-Modus läuft
_titlebar
Erscheint in der Titelzeile des Windows. Die gleichen Kontroll-
zeichen wie für _prompt können verwendet werden.
_version
Enthält die aktuelle Versionsnummer von Csh, z.B. 517
X. FUNKTIONEN
---------------
FUNKTIONEN
Funktionen müssen mit einem @-Zeichen anfangen und können nicht
abgekürzt werden. Vor ihnen muss ein Leerzeichen stehen, genauso
hinter der öffnenden und vor der schliessenden Klammer.
Funktionen dürden verschachtelt werden. Gross/Kleinschreibung ist
wichtig bei Funktionsnamen, jedoch nicht bei den Operationen.
Funktionen können als Kommandos verwendet werden. In diesem Fall
werden sie ohne @ geschrieben. Ihren Rückgabewert geben sie dann
auf den Bildschirm aus. Diese können nicht abgekürzt werden, und
ein Kommando gleichen Namens hat Vorrang.
drives -> DF0: DH1: DH2: RAM: WB_2.x:
Bis jetzt können Funktionen nicht selber definiert werden.
Achtung, Wortmengen und Zeichenketten sind nicht identisch.
Nach
set var hallo da
ist 'var' eine Menge von Worten, aber nach
set var "hallo da"
ist 'var' eine einzige Zeichenkette (ein einziges Wort). Wenn die
Variablen mit 'echo' ausgegeben werden, schauen sie gleich aus, aber
z.B. in 'foreach' verhalten sie sich verschieden. @split und
@concat wandeln die beiden Formen.
@abbrev( Zei1 Zei2 [len] )
wahr wenn die ersten <len> Zeichen von Zei1 eine Abkürzung von
Zei2 sind. (Abkürzung von Kommandos, Funktionen)
@abs( Num )
gibt den Absolutwert von <Num> zurück
@age( Datei )
das Alter der Datei in Tagen, 99999 falls nicht gefunden
@appsuff( Name suffix )
hängt, wenn nötig, die Endung <suffix> an den Namen an
@arg( arg ... arg )
wie @pickargs( )
@availmem( [Typ] )
liefert den freien 'chip', 'fast' oder Gesamtspeicher.
@basename( Pfad ... Pfad )
Gibt die reinen Dateinamen ohne Pfade zurück.
@center( Wort Länge )
gibt eine Zeichenkette der Länge <Länge> mit <Wort> darin zentriert
@checkport( Portname )
sagt aus ob ein bestimmt Port existiert
@clinum( ProcName )
gibt die CLI-Nummer des Prozesses <ProcName> zurück.
@complete( Abkürzung Wort ... Wort )
gibt das erste Wort zurück, von dem <Abkürzung> eine Abk. ist
@concat( Wort1 ... WortN )
hängt alle Worte zu einer Zeichenkette zusammen, getrennt durch
Leerzeichen. Siehe @split
@confirm( Titel Punkt1 .. PunktN)
fragt nach Bestätigung für jedes Wort <Punkt>, und gibt nur
die Bestätigten zurück.
@console( STDIN | STDOUT )
sagt ob Standard-Eingabe (stdin) oder die Standard-Ausgabe
(stdout) interaktiv (nicht umgeleitet) ist.
@dectohex( Zahl )
wandelt eine Zahl von Dezimal nach Hex (sedesimal)
@delword( Wort1 ... WortN-1 WortN )
gibt alle Worte ausser dem N-ten zurück
@delwords( Wort1 ... WortN i j )
löscht j Worte vom i-ten an
@dirs( Name1 .. NameN )
gibt nur die Ordner unter den Namen zurück
@drive( Pfad )
gibt den Geräte-Namen zurück, der zu 'Pfad' gehört
@drives( )
gibt alle Partitionen und Diskdrives zurück
@exists( Datei )
sagt aus ob eine Datei existiert
@fileblks( Datei1 ... DateiN )
sagt aus wieviele Blöcke für diese Dateien benötigt werden.
@filelen( Datei1 ... DateiN )
sagt aus wieviele Bytes für diese Dateien benötigt werden.
@fileprot( Datei )
gibt eine Zeichenkette der Sicherheits-Bits der Datei zurück.
@filereq( Titel Pfad&Muster Dateiname )
öffnet einen ARP Dateirequester und gibt den gewählten Namen zurück
@files( Datei1 ... DateiN )
gibt nur die Dateien zurück, keine Ordner. Siehe @dirs
@freebytes( Pfad )
die Anzahl der freien Bytes auf dem ensprechenden Pfad
@freeblks( Pfad )
die Anzahl der freien Blöcke auf dem ensprechenden Pfad
@freestore( Pfad )
der freie Speicher auf dem Pfad, gegeben in Kb und Mb
@getenv( VarName )
gibt den Wert der ensprechenden ENV: Variablen zurück
@getclass( Datei )
gibt die Klasse (Typ) der Datei zurück. Siehe Kapitel XIV
@howmany( )
zeigt die Zahl der laufenden CShells.
@index( Zeichenkette Muster )
sucht <Muster> in <Zeichenkette> und gibt Offset zurück,
0=nicht gefunden
@info( Pfad )
gibt die entsprechende Zeile aus 'info' zurück
@intersect( Wort1 ... WortN , WortN+1 ... WortM )
zeigt jene Worte, die in beiden Listen sind. Siehe @union, @member
@ioerr( num )
Gibt die Fehler-Zeichenkette aus, der zur Fehlernummer <num> gehört
@lookfor( Datei Pfad)
sucht nach einer Datei im akt. Ordner und in <Pfad>. Siehe $_path
@lower( Arg1 ... ArgN )
macht seine Argumente kleingeschrieben. Siehe @upper
@match( Wort1 ... WortN "Muster" )
gibt jene Worte zurück, auf die das Suchmuster passt.
@max( Wert1 ... WertN )
bestimmt das Maximum der angegebenen Zahlen
@megs( Wert )
gibt eine Zahl in Kb, Mb oder Gb zurück (gerundet)
@member( Wort Wort1 ...WortN )
sagt aus ob <Wort> unter den anderen ist. Siehe @union, @intersect
@min( Wert1 ... WertN )
bestimmt das Minimum der gegebenen Zahlen
@mounted( Gerät )
sagt aus ob <Gerät> (z.B. RAD:) vorhanden
@nameext( Dateiname )
gibt die Extension (Suffix) des Dateinamens an
@nameroot( Dateiname )
gibt alles ausser der Extension des Dateinamens
@opt( Arg1 ... ArgN )
siehe @pickopts( )
@pathname( Datei )
gibt den Pfad zu einer Datei zurück.
@pickargs( Arg1 ... ArgN )
wählt aus seinen Argumenten die, welche nicht mit '-' beginnen
@pickopts( Arg1 ... ArgN )
wählt aus seinen Argumenten die, welche mit mit '-' beginnen
@rpn( Ausdruck )
berechnet den rpn Ausdruck. Siehe Kommando 'rpn'
@sortargs( Arg1 ... AgrN )
sortiert seine Argumente alphabetisch
@sortnum( Wert1 ... WertN )
sortiert seine Argumente numerisch
@split( Zeichenkette )
macht aus einer Zeichenkette mehrere Worte. Siehe @concat
@strcmp( Zeichenkette1 Zeichenkette2 )
gibt -1, 0 oder 1 abhängig vom alphabetischen Vergleich
@strhead( Markierungszeichen Zeichenkette )
siehe strhead Kommando
@strleft( Zeichenkette Wert )
siehe strleft Kommando
@strmid( Zeichenkette Wert1 Wert2 )
siehe strmid Kommando
@strright( Zeichenkette Wert )
siehe strright Kommando
@strtail( Markierungszeichen Zeichenkette )
siehe strtail Kommando
@subwords( Wort1 ... WortN i j )
gibt die nächten j Worte von i an zurück
@tackon( Pfad Datei )
siehe tackon Kommando
@trim( Wort1 ... WortN )
entfernt Leerzeichen vorn und hinten an den Worten
@unique( Wort1 ... WortN )
sortiert die Argumente und macht jedes einmalig
@union( Name1 ... NameN , NameN+1 ... NameM )
gibt die Worte zurück, ein in einer der beiden Listen sind
@upper( Wort1 ... WortN )
macht aus den Worten Grossschrift. Siehe @lower
@volume( Pfad )
gibt den Geräte-Namen für den gegebenen Pfad an
@winheight( )
gibt die Höhe des Windows in Punkten an
@winleft( )
gibt die linke Ecke des Windows zurück
@wintop( )
gibt die obere Ecke des Windows zurück
@winwidth( )
gibt die Breite des Windows zurück
@without( Name1 ... NameN , NameN+1 ... NameM )
gibt die Worte aus Liste 1 zurück, die nicht in Liste 2 sind
@word( Name1 ... NameN i )
nimmt das i-te Wort aus der Liste
@words( Name1 ... NameN )
gibt die Anzahl der Worte in der Liste
XI. VERSCHIEDENES
-----------------
Csh erlaubt nun schnelles 'Scrolling' in grossen Windows. Dies
heisst dass wenn immer der Cursor die unterste Zeile des Windows
erreicht, der Text um mehrere Zeilen auf einmal nach oben
springt. Allerdings funktioniert das nur mit den folgenden
Kommandos:
dir, cat, htype, files, search, truncate, tee
Die Anzahl der zu scrollenden Zeilen steht in _scroll. Ein
Wert <=1 schaltet das schnelle Scrolling' ab.
Die Anzahl der Zeilen, die ein Window mindestens haben muss, damit
sich das schnelle Scrolling einschaltet, steht in $_minrows
(normalerweise 34).
Beliebige Kommandos nach 'cat' umgeleitet, befähigen auch diese
zum Schnellen Scroll, z.B.:
list | cat
Csh kann beendet werden durch den Close-Button in den Windows
von AmigaDOS 2.0 Shells. Es wird dann das Kommando 'quit' aus-
geführt. Durch das Kommando
alias quit "Endcli;quit
wird das Window sofort geschlossen wenn der Close-Button ange-
klickt wird.
EXCEPTIONS
(Fehlerbehandlung)
Falls ein Fehler passiert und keine Variable _except existiert, wird
die aktuelle Zeile abgebrochen. Falls _except exisitiert, hat es
die Form:
"nnn;commands..."
Wobei <nnn> der kleinste Wert ist, der einen Fehler verursachen soll.
Wann immer ein Kommando einen Return-kode zurückgibt, der grösser
oder gleich <nnn> ist, werden die Kommandos in _except ausgeführt.
WENN _except EXISTIERT WIRD DIE KOMMANDOZEILE NICHT ABGEBROCHEN!
Wenn abgebrochen werden soll, sollte das letzte Kommando in _except
'abortline' sein.
Exception handling ist während des exception handlings selber
ausgeschaltet.
Beispiele:
set _except "20;abortline"
set _except ";" # alle Fehler werden ignoriert
XII. Beispiele für 'SOURCE Dateien'
-----------------------------------
Wird in einem CLI-Fenster das Kommando 'Csh <Dateiname>'
eingegeben oder dies im Startup-Script stehen hat, so wird die Datei
'gesourced'.Dies entspricht in einem CLI-Fenster der Eingabe von
'Csh' und dem Eingeben von 'source <Dateiname>' innerhalb der Shell.
Beispiel:
### compat.sh ###
# Diese Alias-Liste stellt sicher, daß aus alten Csh-Versionen
# gewohnte Abkürzungen nicht neue Befehle aufrufen.
alias as aset
alias cl close
alias g goto
alias h help
alias he help
alias m md
alias q quit
alias re rename
alias w window
alias kr "rm -r ram:* >NIL:
### Ende von compat.sh ###
Wenn eine Datei S:.login existiert, so wird diese beim Start jeder Shell
'gesourced'. Dies ist nützlich für alias-Kommandos und sonstige
Einstellungen, die für alle Shells gelten sollen.
### Beispiel S:.login ###
# Hier ein Beispiel für eine .login-Datei:
# (Diese Datei wird für jede neue Shell 'gesourced'.)
set F5 "cdir WORK:"^M
set f9 "ed s:login.sh"^M
set F9 "ed df0:s/startup-sequence"^M
alias toram "%q foreach i ( $q ) \"cp -r $i: ram:$i >NIL:;assign $i: ram:$i
alias ramop "md RAM:op; assign OP: ram:op
alias noop "assign OP: ; rm -r ram:op
alias newop "rm -r OP:*
alias dc "dfc df0: to df1:
alias go "%q assign WORK: Boot:$q; cd WORK:; source startme.sh
alias get "%q cp $q RAM: >NIL:
alias filter "%a%b%c exec $b \\<$a \\>$c
# Startet Kommando $b mit Datei $a als Eingabe und schreibt Resultat in
# Datei $c, Datenfluß: $a -> ($b) -> $c
alias rm "%q \\rm @confirm( Remove $q )
# alias rm "%a set f @pickargs( $a );set opts @pickargs( $a );\
# e -n \'j\' um @words( @files( $f ) ) Datei und @words( @dirs( $f ) )\
# Ordner zu löschen\"? [n] \";input b;if $b = j;\\rm $opts $f;endif
# # Für die Ängstlichen/Vorsichtigen unter uns: Dateien löschen mit Abfrage
# # Achtung: das '\' muß das letzte Zeichen der Zeile sein !!
set _prompt "%c%p> "
# Dieses Kommando fügt den aktuellen Pfad hervorgehoben in den Prompt ein
# Dieses Kommando sorgt für die Anzeige von CLI-Nummer, freiem Speicherplatz,
# Datum und Zeit im Fenster-Titel
set _titlebar "Shell %n Mem %m Date %d Time %t
### Ende Beispiel .login ###
****************************************************************************
Als CLI-Benutzer könnte die 'startup-sequence' einfach folgendermaßen
aussehen:
C:Csh S:startup.sh
Hier ein Beispiel für S:startup.sh:
### Beispiel S:startup.sh ###
wind -l # Volle Bildschirmgröße eines PAL-Rechners nutzen
# Bemerkung: Kommandos können abgekürzt werden
# Hier: 'wind' für 'window'
assign LC: Stuff:c INCLUDE: Stuff:include LIB: Boot:lib QUAD: RAM:
rback C:FaccII; sleep 1
# Nach dem Starten eines Prozesses im Hintergrund ist es gut,
# dem Rechner Zeit für das Laden des Kommandos zu geben, um
# Nerven und Laufwerk zu schonen.
resident -d blink lc1 lc2 >NIL: # verzögertes Laden von externen Kommandos
C:PopCli 300 C:Newcli # Angabe des vollständigen Pfadnamens
C:FF -1 Siesta.font >NIL: # beschleunigt die Ausführung
C:Patch_1 >NIL:
stack 8000 # Minimum für lc1 und lc1
source S:setdate.sh # dort geht's weiter
### Ende Beispiel startup.sh ###
****************************************************************************
Nun folgt eine Beispiel 'source'-Datei, um das Datum und die Zeit zu setzen.
Kann verwendet werden, wenn der Rechner keine interne Uhr besitzt.
(z.B. A1000, A500)
### setdate.sh ###
open CON:200/100/440/80/SetDate write 1
echo >.1 -n "Das aktuelle Datum ist "
date >.1
echo >.1 -n "Bitte neues Datum eingeben: "
input <.1 d
close 1
strlen len $d
if $len > 1 ; date $d ; endif
echo -n "Das neue Datum ist: " ; date
### End of setdate.sh ###
***************************************************************************
Hier ein 'Makefile', das ohne 'Make'-Programm auskommt:
Es kann direkt von der Shell gestartet werden.
(Anm. d. Ü.: 'MakeDatei's beinhalten Informationen darüber, welche
Datei(en) <A> von welchen anderen Datei(en) <B> abhängen,
und wie die Datei <A> aus der Datei <B> neu erzeugt werden
kann, wenn diese ein neueres Datum aufweist.)
(Anm. d. Ü.: Wollte ich schon immer mal schreiben :-)
### make.sh ###
if -t Shell.syms Shell.h; cc +HShell.syms Shell.h; rm shell.o; endif
if -t RAM:Shell.syms Shell.syms; cp -d Shell.syms RAM:; endif
foreach i ( main comm1 comm2 comm3 execom globals rawconsole run set \
sub ) "if -t $i.o $i.c; echo Compile $i...;cc +IRAM:shell.syms $i.c; endif"
# Die Fortsetzung einer Zeile in der nächsten Zeile (mit '\') wurde aus
# Gründen der Übersichtlichkeit angewendet.
# Dies ist jedoch nicht notwendig; kann auch alles in eine Zeile
# geschreiben werden, da kein Limit von 256 Zeichen pro Zeile mehr besteht.
if -t Shell run.o main.o comm1.o comm2.o comm3.o execom.o \
set.o sub.o globals.o rawconsole.o
ln +q -m -o Shell run.o main.o comm1.o comm2.o comm3.o\
execom.o set.o sub.o globals.o rawconsole.o -la -lc
endif
### Ende von make.sh ###
XIII. Vorgabe Werte
--------------------
Einige Aliase sind vordefiniert wenn eine neue Shell gestartet wird,
dies sind:
CDIR
Ein cdir <Ordner> bewirkt: Löschen des CLI-Fensters,Wechsel zum
angegebenen Ordner und Auflistung des Inhalts.
CLS
CLI-Fenster löschen. (Auch im Terminal-Modus)
DSWAP
Wechsel zwischen aktuellem und vorherigen Ordner.
Sollte in Skripten verwendet werden, da das Sonderzeichen für
das vorherige Ordner sich möglicherweise ändern wird.
EXIT
Csh verlassen und CLI beenden.
MANLIST
Ausgabe einer Liste aller möglichen Argumente (also Kommandos)
für 'man'.
Desweiteren sind einige Variablen und Funktionstasten vordefiniert.
Mit dem 'set' Kommando können diese angesehen werden.
XIV. Objektorientierte Eigenschaften
-------------------------------------
Dateiklassen haben zwei nützliche Eigenschaften:
1. Die Identifizierung des Dateityps (Bild, Archiv, Animation, usw.)
2. Das Überladen ('overloading') von Kommandos.
'overloading' bedeutet den Gebrauch desselben Kommandos auf
Dateien verschiedenen Typs, wobei die jeweils ausgeführten
Aktionen von Typ zu Typ vollkommen unterschiedlich sein können.
Der Sinn sollte durch die folgenden Beispiele klar werden.
(Anm. d .Ü.: Wem diese Materie auf den ersten Blick zu kompliziert oder
abstrakt erscheint, der sollte nicht gleich aufgeben, sondern
mit dem Klassen-Mechanismus ein wenig herumspielen. Er kann
sehr hilfreich sein.)
DATEIKLASSEN
Klassen von Dateien können mit Hilfe mehrerer 'class' Kommandos
definiert werden, hier ein einfaches Beispiel:
class bild suff=.pic suff=.iff suff=.ilbm
class anim suff=.anim
Nach Ausführung dieser Kommandos kann die Csh jede Datei mit den
Suffixen .pic, .iff oder .ilbm als ein Bild (bild) identifizieren.
Anmerkung: Es dürfen keine Leerzeichen zwischen den Namen und dem
'=' stehen, Leerzeichen innerhalb des Namens müssen in
Anführungszeichen stehen.
Dies sind Möglichkeiten, eine Datei zu identifizieren:
suff=.doc Erfüllt, wenn der Suffix der Datei '.doc' lautet
name=readme Erfüllt, wenn der Name der Datei "readme" ist
name="mod.*" Erfüllt, wenn der Name der Datei mit 'mod.' beginnt
offs=14,DC..C4FD Erfüllt, wenn die Bytes beginnend mit Byte $14
lauten: $DC, <irgendwas>, $C4, $FD
(alle Zahlen hexadezimal!).
Jedes Paar von Punkten ('..') steht für ein zu
ignorierendes Byte .
chars Erfüllt wenn 90% aller Bytes der Datei im Bereich
32..127 oder 9..13 liegen
default Immer erfüllt, wird verwendet, um den Vorgabe-Typ
zu definieren
Anmerkung: Nur das erste Zeichen wird betrachtet, so steht z. B.
's' für 'suff'.
Eine Klasse kann in mehr als einem 'class' Kommando spezifiziert
werden. Die Identifizierung erfolgt in der gleichen Reihenfolge,
in der die 'class' Kommandos eingegeben wurden.
Um zum Beispiel sicherzustellen, daß ein irrtümlich mit dem Suffix
'.lzh' benanntes 'zoo'-Archiv korrekt identifiziert wird,
können die folgenden 'class' Kommandos verwendet werden:
class zoo offs=14,DCA7C4FD
class lzh offs=2,2D6C68..2D
class zoo suff=.zoo
class lzh suff=.lzh
Es existiert auch eine eingebaute Klasse 'dir', die ein Ordner
beschreibt.
Zu diesem Zeitpunkt kennen wir verschiedene Typen von Dateien,
aber was kann damit nun anfangen werden ? Dazu werden Aktionen
(actions) benötigt, die im folgenden erläutert werden sollen.
AKTIONEN UND AKTIONSDEFINITIONEN FÜR KLASSEN
Für eine Klasse können die verschiedenen Aktionen in einem oder auch
in mehreren 'class' Kommandos definiert werden.
class zoo actions view="zoo -list" extr="zoo -extract"
class lzh actions view="lz l"
class lzh actions extr="lz e"
Wenn nun versucht wird, mit der Aktion 'view' eine Datei 'test.zoo'
anzusehen, so wird letztendlich die Befehlszeile
'zoo -list test.zoo' ausgeführt, Eine Datei 'test.lzh' aber wird
mit 'lz l test.lzh' bei 'view test.lzh' interpretiert.
Anmerkung: Jedes angegebene Kommando durchläuft den normalen
Csh-Interpreter, d.h. AmigaDOS- and Csh-Pfade werden durchsucht.
Aliases mit Argumenten sind auch erlaubt, alle vom
Benutzer eingegebenen Argumente werden in die Variable
hinter dem '%' gespeichert.
Wie kann einer Datei nun mitgeteilt werden, daß angesehen ('view')
werden soll ? Dies geschieht mit einem weiteren Kommando für objekt-
orientierte Dateibearbeitung.
Das Kommando
action view test.zoo
wird als erstes versuchen, den Typ der angegebenen Datei zu ermitteln,
und dann - falls dies erfolgreich war - die 'view' Aktion auf die Datei
anwenden.
Diese Befehlsfolge kann durch die Gebrauch eines 'alias' vereinfacht
werden:
alias v "action view"
definiert ein 'v' Kommando, mit dem alle der Csh bekannten
Dateitypen angesehen werden können.
alias xtr "action extr"
definiert analog ein Kommando 'xtr' mit dem alle der Csh bekannten
Archivtypen ausgepackt werden können.
Es gibt eine Aktion, die an eine Datei geschickt wird, die gestartet
wurde, aber nicht ausführbar ist (s. Kapitel VIII).
Diese Aktion lautet 'exec'.
Es sei eine Klasse 'picture' definiert, nach Eingabe von
class picture actions view=Mostra exec=Mostra
kann ein Bild mit Hilfe des Anzeigeprogramms 'Mostra'
angesehen werden, indem einfach der Namen des Bildes eingegeben
wird.
Anmerkung: Die Namen für die Aktionen sind im allgemeinen frei
wählbar, dabei bildet (s.o.) die Aktion 'exec' eine
Ausnahme, weiterhin könnten zukünftig Aktionen wie 'rm'
und 'dir' implemtiert werden, d.h. für eigene Aktionen sollten
keine Namen eingebauter Funktionen verwendet werden.
Die Source-Datei class.sh definiert ein paar nützliche Klassen.
ÜBERKLASSEN
Angenommen es existiert eine Klasse für .c Dateien, eine
für .h Dateien und eine für .asm Dateien. Diese wollen unterschieden
werden aber letzten Endes sind es doch alles ASCII Dateien.
Das kann wie folgt festgelegt werden:
class c_source suff=.c is=ascii
Wenn jetzt eine Aktion auf einer Datei des Tps c_source nicht
ausgeführt werden kann, dann wird die Datei vom Typ ascii
intepretiert, und dieselbe Aktion wird erneut ausgeführt. Dies
geschieht solange, bis eine Klasse keine Überklasse mehr besitzt.
XV. Keymaps (Tastaturbelegungen)
--------------------------------
Eine Keymap wird als eine Sammlung von 'Taste-Funktion'-Paaren
definiert. Beide werden durch eine Nummer identifiziert.
Es kann mehrere Keymaps geben, die sich gegenseitig aktivieren
können, am Anfang werden wir uns aber auf Keymap 0 beziehen.
Dies ist die Keymap, die bei Shell-Start aktiv ist.
Alle vom Benutzer definierten Tasten überschreiben möglicherweise
alte Definitionen der entsprechenden keymap.
Alle mit (*) markierten Funktionen sind bisher nicht implementiert.
TASTENKODES
1..255 Das entsprechende ASCII-Zeichen
256 Pfeil nach oben
257 Pfeil nach unten
258 Pfeil nach rechts
259 Pfeil nach links
260 'Help'-Taste
261..270 F1..F10 (ohne Shift)
Modifiers , also Shift, Alt, Amiga, Ctrl (zum Tastaturcode addieren)
512 SHIFT (nur notwendig für Pfeile und Funktionstasten)
1024 ESC (wenn gedrückt und losgelassen vor Taste)
EDITORFUNkTIONEN
- Bewegungen bewege Cursor ...
0 CursLeft 1 links
1 CursRight 1 rechts
2 WordLeft 1 Wort links
3 WordRight 1 Wort rechts
4 BegOfLine an den Anfang der Zeile
5 EndOfLine an das Ende der Zeile
- Löschen lösche ...
10 Backspace Zeichen links vom Cursor
11 Delete Zeichen rechts vom Cursor
12 BkspcWord Wort links vom Cursor
13 DelWord Wort rechts vom Cursor
14 DeleteToSOL vom Anfang der Zeile bis Cursor
15 DeleteToEOL von Cursor bis Ende der Zeils
16 DeleteLine ganze Zeile
- aus Kommandospeicher einfügen
20 Back Vorherige Zeile holen
21 Forward Nächste Zeile holen
22 Beg Erste Zeile aus Kommandospeicher holen
23 End Letze Zeile aus Kommandospeicher holen
24 Complete Zeile aus dem Kommandospeicher vervollständigen
(wie '!')
25 Exec Kommandospeicher-Zeile ausführen
und nächste Zeile holen
26 Tail Vorherige Zeile holen, dabei erstes Wort weglassen
27 Bottom Eine Zeile weiter als letzte Kommandospeicher-Zeile
nach unten
28 DupWord Letztes Wort der aktuellen Zeile verdoppeln
- Completion (Dateinamen vervollständigen)
30 Normal Erstes passendes Wort einfügen bzw. zum nächsten Wort
31 Partial Alle Dateien einfügen, die die Zeichenkette enthalten
32 All Alle passenden Dateien einfügen
33 Ordner Ordnernamen aus Tabelle (qcd) holen
34 LastCD Vorherigen Ordner einfügen
35 Show Alle passenden Dateien auflisten
- Spezielles
40 Insert Umschaltung Überschreiben/Einfügen
41 Quit Shell beenden
42 Help Help aufrufen
43 Refresh Aktuelle Zeile neu schreiben
44 Execute Aktuelle Zeile ausführen
45 Leave Aktuelle Zeile in Kommandospeicher speichern, weiter
mit neuer Zeile
46 EOF Shell beenden bzw. Dateiende anzeigen
47 NOP (No OPeration) keine Aktion
48 Echo^O ^O ausgeben
49 Beep ^G ausgeben
- Sonstiges
50 Fkey Kommando der letzten Funktionstaste ausführen
51 Menu Kommando der letzten Menüfunktion ausführen
52 Undo Letztes Edierkommando wiederholen
53 Repeat Letzte Funktion wiederholen
54 SwapChar Die beiden Zeichen links vom Cursor vertauschen
Kommandotypen
0 +x Funktion mit Nummer 'x' gemäß obiger Liste
512 +x Auf Keymap Nummer 'x' umschalten , x=0..7
1024+x Zeichen mit ASCII-Nummer 'x' einfügen , x=1..255
1536+x Makro x ausführen , x=1..15 (*)
2048+x Zeichenkette x einfügen , x=1..15 (*)
Beispiel:
keymap 0 66=49 # B = Piepton
keymap 0 2=16 # ^B = Zeile löschen
keymap 0 1122=35 # ESC-b = passende Dateien auflisten
# 1122 = 1024(ESC) + 98(b)
keymap 0 771=4 # Shift-<Pfeiltaste Links> = Zeilenanfang
# 771 = 512(Shift) + 259(<Pfeiltaste Links>)
keymap 0 770=5 # Shift-<Pfeiltaste Rechts> = Zeilenende
GLOSSAR
-------
Alias Ein alternativer Name für ein Kommando oder
Kommandoabfolge die mit dem Alias Kommando
spezifiziert wird.
Application Allgemein ein Programmpaket, etwa DPaint.
Archive Eine Kopie/Backup einer Datei, Meist ist das Archive-Bit
gemeint, welches angibt, ob von der Datei bereits eine
Sicherheitskopie gemacht wurde.
Argument Eine zusätzliche Information, die an ein Kommando
übergeben wird, wie etwa Dateiname, Werte oder Optionen.
ASCII American Standard Code for Information Interchange,
Standard für Computerzeichensätze.
Assign Eine Verbindung eines physikalischen Ordners zu einem
logischen Gerätenamens. Etwa RAM:T ist meist als T: bekannt.
Backup Eine Kopie einer Datei auf einem physikalisch externen Gerät,
z.B. Streamer, Diskette.
Binary Binäres (dual) Zahlensystem, hier ist aber oft eine Datei
gemeint die auch non-Ascii Zeichen enthält (Zeichen mit
Ascii-Kode >128), etwa ausführbare Programme.
Bit (engl. 'ein bißchen') Binäre Einheit, hier oft als Flag,
also Vorzeichen gemeint.
Block Serie von 512 Bytes auf Gerät.
Byte Speichereinheit von 8 Bits Länge, normal genau die
Information für ein Zeichen.
Chip Hiermit ist der Speicherbereich gemeint, der auf dem Amiga
den Customchips zu verfügung steht. Auch als
Grafikspeicher bekannt. Meist 1 MB RAM (A500, A2000) oder
2 MB (A3000,A500+).
CLI Command Line Interface. Damit ist das Programm gemeint,
welches überhaupt die Kommunikation per Tastatur mit dem
Rechner ermöglicht (Shell).
Compiler Programm, welches ein rohes Programm in einer höheren
Sprache, etwa C, geschrieben, in eine dem Rechner tatsächlich
verständliche Instruktionsfolge übersezt.
Cursor Die kleine rechteckige Farbmarkierung, unter der die
magischen Zeichen erscheinen.
Default Vorgabewert, Vorgabezustand.
Delete Physikalisch Löschen, entfernen.
Device Siehe Gerät.
Directory Verzeichniss. Ordner. Schublade. Ablage im Dateibaum.
DOS Disk Operating System. Eigentliches Betriebsystem.
Ermöglicht erst die Dateioperationen.
Editor Programm um Texte einzugeben, etwa ED.
Environment Variable Eine Variable in der ein Wert oder eine
Zeichenkette temporär abgespeichert werden kann.
Fast Genereller Speicher des Amigas. Kann von den Custom Chips
nicht angesprochen werden.
File Datei, Folge von Zeichen.
Flag Vorzeichen, Indikator für bestimmten Status.
Gb Gigabyte, 1024 Megabytes. (1 Milliarde Zeichen)
Gerät Physikalischer Mechanismus, etwa Diskette DF0: oder
aber auch logische Einheit wie RAM: um Daten abzuspeichern
oder zu laden.
Hard Disk Festplatte. Moderner, schneller Massenspeicher. Abk. HD.
Hexadezimal Auf dem 16-er System basierendes Zahlensystem. Zahlen
größer 9 werden durch die Zeichen A-F gegeben.
Eigentlich grie. Sedesimal.
History Kommando(Vergangenheits)speicher. Liste mit den zuletzt
ausgeführten Kommandos.
Kb Kilobyte, 1024 Bytes.
Keymap Tastaturbelegung, ist auf dem Amiga variabel.
Kickstart Oft auch als ROM bezeichnet. Bei alten Amigas per
Diskette zu laden, beinhält grundlegende Software.
Link Zeiger, Verbindung auf eine Datei.
Lokal Nur innerhalb einer Prozedur gültige Option, Variable.
Mb Megabyte, 1024 Kb (1 Million Zeichen)
Memory Speicher.
Menu Liste von Auf-dem-Schirm Optionen. Mit dem Menuknopf
(Rechte Maustaste) erhältliche Optionenliste.
Menu Item Option im Menu. Menupunkt.
Multitasking Stärke des Amigas. Hiermit wird die Fähigkeit bezeichnet,
mehrere Programme scheinbar gleichzeitig auszuführen.
Offset Hier ist damit eine Folge von Bytes gemeint.
Partition Einteilung auf Festplatte, die somit mehrere logische
Geräte zur Verfügung stellt.
Path Pfad. Weg innerhalb des Dateibaums von Wurzel zu Blatt,
hier Datei. Auch Suchpfad, also Zeichenkette, die
mehrere Pfade beinhält, die angibt wo Programme bei Aufruf
zu suchen sind.
Pattern Suchmuster.
Pipe (engl. Rohr) Datenstrom, dieser kann von einem Programm
an das Nächste übergeben werden.
Process Task, laufendes Programm. Folge von Instruktionen.
Prompt Eingabeaufforderungstext. Etwa 1>:
Pure Ein Sicherheits-Bit, welches angibt ob ein Programm
resident geladen werden kann. Muss vom Compiler unterstüzt
werden.
RAM Random Access Memory. Generel zugängiger Speicher.
RAM Disk Logisches Gerät im Speicher. Ist dynamisch aufgebaut. Nur
durch Speicherkapazität begrenzt.
Requester Fenster in dem eine Datei interaktiv spezifiziert weden kann.
Resident Ein Programm kann in den Speicher geladen werden, es wird
dann nur noch direkt im Speicher aufgerufen, braucht nicht
mehr erneut geladen werden. Enormer Zeitvorteil bei oft
vorkommenden Programmen.
Return Kode Rückgabewert von Programmen oder Stapeldateien. Damit
kann auf erfolgreichen Durchlauf eines Programms gecheckt
werden.
ROM Read Only Memory. Speicherbereich, der nicht gelöscht
oder beschrieben werden kann, Beinhält normal ein
grundlegendes Betriebsystem.
Screen Grafische Fähigkeit des Amigas. Es können mehrere solcher
Schirme, auch mit verschiedenen Auflösungen geöffnet werden.
Scroll Verschieben eines Textes nach oben (oder generell in eine
Richtung).
Shell (engl. Muschel, Umgebung) Erweiterter CLI. Programm zur
Kommunikation mit dem Computer.
Source Quellkode. Hier ist damit aber der Vorgang gemeint, eine
Stapeldatei zu interpretieren und ablaufen zu lassen.
Stack Ein spezieller Bereich des RAMs der allen Programmen für
temporäre Speicherung dient.
Stapeldatei Abfolge von Kommandos die in einer Datei zusammengefasst
sind. Dies ermöglicht auch eine Steuerung durch Sprungmarken
und Schleifen.
String Zeichenkette.
Suchmuster Vorgegebenes Muster nach dem etwas durchsucht werden
soll. Platzhalter und Kriterien.
Syntax Grammatik. Regel.
Volume Gerätename. (Etwa Workbench:)
Workbench Graphische Benutzeroberfläche des Amigas.
Zeichenkette Folge von Zeichen. Intern duch ein Null-Zeichen
abgeschlossen. Kann auch eine Matrix beinhalten.
QED.